在我的应用程序中,我有一个包含许多行的datagridview。我想在用户右键单击某个单元格时添加一个功能以弹出上下文菜单。但只有左键单击默认选择单元格的方法。所以我搜索了一下,我发现了这段代码
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var hti = dataGridView1.HitTest(e.X, e.Y);
dataGridView1.ClearSelection();
dataGridView1.Rows[hti.RowIndex].Selected = true;
}
}
但是这个代码的问题是在我右键单击wholw行后将此代码放到mousedown之后。但我只想选择一个单元格
我该如何解决这个问题
答案 0 :(得分:0)
要获得您想要的行为:
- 确保您拥有dataGridView1
属性SelectionMode = CellSelect
或SelectionMode = RowHeaderSelect
(取决于您是否希望用户能够选择整行)
- 对您的代码进行以下更改:
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var hti = dataGridView1.HitTest(e.X, e.Y);
if (hti.RowIndex >= 0)
{
dataGridView1.ClearSelection();
dataGridView1.CurrentCell = dataGridView1[hti.ColumnIndex, hti.RowIndex];
}
}
}