我希望在MouseDown
事件中获取DataGrid
的单元格点击信息,但目前尝试都没有成功。
我尝试了以下方法:
dg.CurrentCell
- 包含之前点击的单元格信息dg.GetChildAt(...)
- 无法工作,因为单元格不是DataGrid的子元素
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
clickedCell
应该是 DataGridViewCell
类型吧? - CrazyIvan1974DataGrid
WinForms控件上。如果它也适用于DataGridView
,我会很高兴的。 - Breeze Private Sub DataGridView1_MouseDown(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDown
Try
With DataGridView1
.Rows(.HitTest(e.X, e.Y).RowIndex).Selected = True
End With
Catch
End Try
End Sub
msdn
网站上的答案和几个简单的谷歌搜索链接回答了它? - ClaudiusMouse.MouseDown
,有什么区别呢? - ClaudiusDataGridView.HitTest
时,你可能会想到值得查找DataGrid.HitTest
,但对于任何搜索标题加上-datagridview -wpf
(以获取DataGrid
的结果)的人来说,这个问题可能会有所帮助。 - Breeze