避免在列调整大小区域之间单击时触发双击事件
Avoid double click event from being fires when clicked between column resize regions
我有一个只有几列的 DataGridView。每次加载网格时,我都会默认选择一行。因此,每当我双击任何行时,Double Click 事件中的代码就会被执行。
现在,当我将鼠标悬停在列 headers 之间时,鼠标光标发生变化,我可以开始调整列的大小。但是,每当我在同一区域双击时,双击事件就会触发并执行其中的代码。
所以我无法在代码中验证,如果我双击行或列调整大小区域,如何区分。
请帮助我找到解决此问题的方法。谢谢!!
确保双击事件中的 RowIndex 不等于 -1。
if(e.RowIndex !=-1)
{
// your code
}
我只是使用了下图所示的检查来避免在双击任一列 headers/ 分隔符时触发双击。这对我有用。
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
}
我有一个只有几列的 DataGridView。每次加载网格时,我都会默认选择一行。因此,每当我双击任何行时,Double Click 事件中的代码就会被执行。
现在,当我将鼠标悬停在列 headers 之间时,鼠标光标发生变化,我可以开始调整列的大小。但是,每当我在同一区域双击时,双击事件就会触发并执行其中的代码。
所以我无法在代码中验证,如果我双击行或列调整大小区域,如何区分。
请帮助我找到解决此问题的方法。谢谢!!
确保双击事件中的 RowIndex 不等于 -1。
if(e.RowIndex !=-1)
{
// your code
}
我只是使用了下图所示的检查来避免在双击任一列 headers/ 分隔符时触发双击。这对我有用。
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
}