如何确定用户已单击DataGridView而不是单元格

时间:2013-08-01 13:42:20

标签: c# winforms datagridview mouseclick-event

我想提示用户在点击DataGridView的空白区域时将新元素输入到数据绑定集合中。如何确定用户是否已点击DataGridView(默认情况下为灰色区域),而不是Column / Row / Cell

2 个答案:

答案 0 :(得分:9)

您可以使用MouseClick事件并对其进行点击测试。

private void dgv_MouseClick(object sender, MouseEventArgs e)
{
    var ht = dgv.HitTest(e.X, e.Y);

    if (ht.Type == DataGridViewHitTestType.None)
    {
         //clicked on grey area
    }
}

答案 1 :(得分:2)

要确定用户何时单击DataGridView的空白部分,您将不得不处理其MouseUp event

在这种情况下,您可以HitTest点击该位置并注意这一点以指示HitTestInfo.Nowhere

例如:

private void myDataGridView_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
    //'#See if the left mouse button was clicked
    if (e.Button == MouseButtons.Left) {
        //'#Check the HitTest information for this click location
        if (myDataGridView.HitTest(e.X, e.Y) == HitTestInfo.Nowhere) {
            // Do what you want
        }
    }
}