winforms 如何在DoubleClick事件中命中测试DataGridView

pprl5pva  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(148)

我想hitTest一个datagridviewdatagridviewdoubleclick事件。因为它是doubleclick事件,你只是有eventArgs,而不是一个MouseEvent,所以我不知道在哪里执行的doubleclick
我试过Cursor.Position,但没有成功。
有没有人对此有一个解决方案?
下面是函数:

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

    DataGridView.HitTestInfo test = dgvFormulaires.HitTest(Cursor.Position.X, Cursor.Position.Y);
    if(test.RowIndex >= 0)
        btnGestForm.PerformClick();
}

行索引始终为具有该代码的-1

i1icjdpr

i1icjdpr1#

我换了这条线

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);

相关问题