从鼠标位置获取DataGrid单元格

Bre*_*eze 7 .net vb.net datagrid winforms

我想DataGridMouseDown活动中获取 a 的点击单元格。到目前为止我还没有成功。
我试过

  • dg.CurrentCell- 包含先前单击的单元格

  • dg.GetChildAt(...)- 不起作用,因为单元格未列为 DataGrid 的子级

Bre*_*eze 7

您可以使用HitTest来获取鼠标所在的单元格。(它不依赖于MouseDown-Event,您只需要相对于DataGrid的鼠标位置)

例子:

Private Sub dg_MouseDown(sender As Object, e As MouseEventArgs) Handles dg.MouseDown
    Dim htinfo As HitTestInfo = dg.HitTest(new Point(e.X, e.Y))

    If htinfo.Type = HitTestType.Cell Then
        Dim clickedCell As DataGridCell = dg.Item(htinfo.Row, htinfo.Column)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)