private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
const int targetColumn = 0;
DataGridViewCell cell = null;
if ((dataGridView1.SelectedCells.Count == 1 &&
dataGridView1.SelectedCells[0].ColumnIndex == targetColumn) ||
dataGridView1.SelectedRows.Count == 1)
{
cell = dataGridView1.CurrentRow.Cells[targetColumn];
Rectangle rect = dataGridView1.GetCellDisplayRectangle(cell.ColumnIndex,
cell.RowIndex, true);
button1.Parent = dataGridView1;
button1.Location = new Point(rect.Right - button1.Width, rect.Top);
button1.Visible = true;
}
else
button1.Visible = false;
}