从鼠标位置获取DataGrid单元格

时间:2016-04-29 09:53:14

标签: .net vb.net winforms datagrid

我想在DataGrid事件中获取MouseDown的点击单元格。到目前为止,我还没有成功 我试过了

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

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

1 个答案:

答案 0 :(得分:3)

您可以使用HitTest获取鼠标结束的单元格。 (它不依赖于MouseDown - 事件,你只需要相对于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