我需要在显示 ContextMenu 之前右键单击 dataGridView 中的一行,因为 contextMenu 是行相关的。
我试过这个:
if (e.Button == MouseButtons.Right)
{
var hti = dataGrid.HitTest(e.X, e.Y);
dataGrid.ClearSelection();
dataGrid.Rows[hti.RowIndex].Selected = true;
}
或者:
private void dataGrid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dataGrid.Rows[e.RowIndex].Selected = true;
dataGrid.Focus();
}
}
这有效,但是当我尝试读取 dataGrid.Rows[CurrentRow.Index] 时,我只看到左键选择的行,而不是右键选择的行。