Так вы можете отобразить контекстное меню и выбрать текущую ячейку, если щелкнуть ячейку.
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
DataGridView.HitTestInfo hit = dataGridView1.HitTest(e.X, e.Y);
if (hit.Type == DataGridViewHitTestType.Cell)
{
dataGridView1.CurrentCell = dataGridView1[hit.ColumnIndex, hit.RowIndex];
contextMenuStrip1.Show(dataGridView1, e.X, e.Y);
}
}
}
В обработчике события Click из вашего пункта меню проверьте dataGridView1.CurrentRow, чтобы узнать, какая строка выбрана в данный момент.,Например, если сетка связана с источником данных:
private void test1ToolStripMenuItem_Click(object sender, EventArgs e)
{
var item = dataGridView1.CurrentRow.DataBoundItem;
}
При тестировании этого кода убедитесь, что свойство DataGridView.ContextMenuStrip не установлено.