避免在列调整大小区域之间单击时触发双击事件

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
    }