C# 如何在双击事件中测试DataGridView
好的,我想点击测试datagridview该datagridview的双击事件。因为它是双击事件,所以只有eventArgs而不是MouseEvent,所以我不知道双击是在哪里执行的 我试着用光标定位,但没有成功 有人能解决这个问题吗 以下是功能: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;
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
您将获得命中的行和列。