我有一个包含很少列的DataGridView。每次加载网格时,我都会默认选择一行。因此,每当我双击任何一行时,双击事件中的代码都会被执行。
现在当鼠标悬停在列标题之间时,鼠标光标会改变,我可以开始调整列的大小。但是,每当我在同一区域双击时,双击事件就会触发,并且其中的代码会执行。
所以我无法在代码中验证,如果我双击行或调整列大小区域,如何区分。
请帮我找一个关于这个问题的解决方法。谢谢!!
答案 0 :(得分:0)
确保双击事件中RowIndex不等于-1。
if(e.RowIndex !=-1)
{
// your code
}
答案 1 :(得分:0)
我只是使用下面显示的检查来避免双击任何列标题/分隔符时双击。这对我有用。
private void dgvConnections_DoubleClick(object sender, EventArgs e)
{
//Ensure the double click isn't firing when the mouse is clicked anywhere over the column headers/ column separators.
DataGridView.HitTestInfo hit = dgvConnections.HitTest(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);
if (hit.RowIndex == -1)
return;
//my code here, which should run on double click
}