C# 如何在双击事件中测试DataGridView

C# 如何在双击事件中测试DataGridView,c#,winforms,datagridview,C#,Winforms,Datagridview,好的,我想点击测试datagridview该datagridview的双击事件。因为它是双击事件,所以只有eventArgs而不是MouseEvent,所以我不知道双击是在哪里执行的 我试着用光标定位,但没有成功 有人能解决这个问题吗 以下是功能: private void dgvFormulaires_DoubleClick(object sender, EventArgs e) { if (dgvFormulaires.Rows.Count == 0) return;

好的,我想点击测试datagridview该datagridview的双击事件。因为它是双击事件,所以只有eventArgs而不是MouseEvent,所以我不知道双击是在哪里执行的

我试着用光标定位,但没有成功

有人能解决这个问题吗

以下是功能:

private void dgvFormulaires_DoubleClick(object sender, EventArgs e)
{
    if (dgvFormulaires.Rows.Count == 0)
        return;

    //I replaced the commented line with those 2 lines and now it work
    System.Drawing.Point pt = dgvFormulaires.PointToClient(Cursor.Position);
    DataGridView.HitTestInfo test = dgvFormulaires.HitTest(pt.X, pt.Y);
    //DataGridView.HitTestInfo test = dgvFormulaires.HitTest(Cursor.Position.X, Cursor.Position.Y);
    if(test.RowIndex >= 0)
        btnGestForm.PerformClick();
}
该代码的行索引始终为-1

/编辑在下面添加了答案

我替换了这一行

DataGridView.HitTestInfo test = dgvFormulaires.HitTest(Cursor.Position.X, Cursor.Position.Y);
有了这两条线,现在它工作得很好

System.Drawing.Point pt = dgvFormulaires.PointToClient(Cursor.Position);
DataGridView.HitTestInfo test = dgvFormulaires.HitTest(pt.X, pt.Y);

我自己找到的。答案现在在问题中。我应该删除吗?回答你自己的问题更好。48小时后,您将能够接受自己的答案。您知道如何相对于gridview测试DataGridRow吗?@eranotzap我不太清楚您为什么要这样做。通过获取
HitTestInfo
您将获得命中的行和列。