先上图:

我是直接网上搜得代码,不是本人写得。下面说说大体思路,继承DataGridViewButtonCell类实现自定义类比如这个:DataGridViewDetailButtonCell 里面,这里面就重写一个paint事件,click事件和一个判断鼠标是否在按钮区域内点击了按钮的方法。
接着在定义一个类:DataGridViewDetailButtonColumn,继承自:DataGridViewColumn。里面就一个空参数的构造方法:
public DataGridViewDetailButtonColumn()
{
this.CellTemplate = new DataGridViewDetailButtonCell();
this.HeaderText = "操作";
}
做完这些我们在编译一下,这样才能在手动在datagridview里添加列的时候有这个自定义对象。就像这样:
