Ответ на странице MSDN для DataGridViewButtonColumn .
Вам необходимо обработать события CellClick или CellContentClick объекта DataGridView.
Чтобы присоединить обработчик:
dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
И код в методе, который обрабатывает evend
void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
// Check that the button column was clicked
if (dataGridView1.Columns[e.ColumnIndex].Name == "MyButtonColumn")
{
// Here you call your method that deals with the row values
// you can use e.RowIndex to find the row
// I also use the row's databounditem property to get the bound
// object from the DataGridView's datasource - this only works with
// a datasource for the control but 99% of the time you should use
// a datasource with this control
object item = dataGridView1.Rows[e.RowIndex].DataBoundItem;
// I'm also just leaving item as type object but since you control the form
// you can usually safely cast to a specific object here.
YourMethod(item);
}
}