2016-04-29 4 views
1

Я хочу получить ячейку с щелчком DataGrid на мероприятии MouseDown. До сих пор я не был успешным.
Я попыталсяПолучить ячейку DataGrid из положения мыши

  • dg.CurrentCell - содержит предыдущий щелкнул ячейку

  • dg.GetChildAt(...) - не работает, потому что клетки не перечислены как дети DataGrid

+0

У Вас вопрос и ответить на него сразу же, с ответом от ' msdn' и десятки ссылок на простой поиск в Google? – Claudius

+1

@ Claudius вы заметили, что все результаты google относятся к DataGrid ** View ** вместо DataGrid? Если вы добавите -datagridview в поиск, каждый результат будет для WPF и т. Д. ... – Breeze

+0

Но в чем разница, если обе захватывают одно и то же событие 'Mouse.MouseDown'? – Claudius

ответ

2

Вы можете использовать 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 
Смежные вопросы