我在WinForms datagridview中具有以下代码,用于处理鼠标右键单击以选择基础行:
private void dataGridViewTestSteps_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
var hitTestInfo = dataGridViewTestSteps.HitTest(e.X, e.Y);
dataGridViewTestSteps.ClearSelection();
dataGridViewTestSteps.Rows[hitTestInfo.RowIndex].Selected = true;
}
...现在可以正常工作,但是不会将小指示器放置在正确的行中(请参见下图)。所以基本上我想知道上面的方法缺少什么?
最佳答案
行标题光标显示当前行,而不显示所选行-它们实际上是不同的,因为您可以有多个所选行,但只能有一个当前行。
请尝试以下代码:
private void dataGridViewTestSteps_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
var hitTestInfo = dataGridViewTestSteps.HitTest(e.X, e.Y);
//dataGridViewTestSteps.ClearSelection();
//dataGridViewTestSteps.Rows[hitTestInfo.RowIndex].Selected = true;
dataGridViewTestSteps.CurrentCell = dataGridViewTestSteps.Rows[hitTestInfo.RowIndex].Cells[0];
}
关于.net - 将DataGridView的行指示器放置到手动选择的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6818220/