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

C# 避免在列大小调整区域之间单击时引发双击事件,c#,datagridview,resize,double-click,C#,Datagridview,Resize,Double Click,我有一个DataGridView,只有很少的列。默认情况下,每次加载网格时都会选择一行。因此,每当我双击任何一行时,双击事件中出现的代码都会被执行 现在,当我将鼠标悬停在列标题之间时,鼠标光标会发生变化,我可以开始调整列的大小。但是,每当我在同一个区域双击时,双击事件就会触发,其中的代码就会执行。 因此,我无法在代码中验证如何区分双击行或列大小调整区域 请帮我找到解决这个问题的办法。谢谢 确保双击事件中的RowIndex不等于-1 if(e.RowIndex!=-1) { //你的代码 }我刚

我有一个DataGridView,只有很少的列。默认情况下,每次加载网格时都会选择一行。因此,每当我双击任何一行时,双击事件中出现的代码都会被执行

现在,当我将鼠标悬停在列标题之间时,鼠标光标会发生变化,我可以开始调整列的大小。但是,每当我在同一个区域双击时,双击事件就会触发,其中的代码就会执行。

因此,我无法在代码中验证如何区分双击行或列大小调整区域


请帮我找到解决这个问题的办法。谢谢

确保双击事件中的RowIndex不等于-1

if(e.RowIndex!=-1)
{
//你的代码

}

我刚才使用了如下所示的检查,以避免双击任一列标题/分隔符时触发双击。这对我有用

    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
提供了许多
xxxDoubleClick
事件,可能是您应该订阅最适合要执行的操作的一个(或多个)事件。e、 g.
CellDoubleClick
CellContentDoubleClick
RowHeaderMouseDoubleClick
等。请尝试检查鼠标指针!!不幸的是,DataGridView双击的EventArgs没有RowIndex属性可用。你能提出其他解决办法吗?