Динамическое контекстное меню на узлах Treeview
-
21-08-2019 - |
Вопрос
Дубликат : Найдите узел, выбранный в контекстном меню
У меня есть контекстное меню в Treeview, когда пользователь щелкает правой кнопкой мыши, оно должно меняться в зависимости от объекта тега узла, щелкнутого правой кнопкой мыши в данный момент.
В настоящее время я обновляю контекстное меню в событии after_select, однако это не работает, когда пользователь щелкает правой кнопкой мыши на другом узле, не выбирая его.
Как я могу определить, какой узел щелкнул правой кнопкой мыши, и изменить контекстное меню?Или я делаю это неправильно?
Решение
Вы можете использовать событие MouseDown и метод hitTest, чтобы узнать, на каком узле был сделан щелчок.
Другие советы
Private Sub tvTables_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tvTables.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim M As New ContextMenuStrip
Dim HTI As TreeViewHitTestInfo = tvTables.HitTest(e.X, e.Y)
If HTI.Node.Level = 0 Then
M = T1Menu
ElseIf HTI.Node.Level = 1 Then
M = T2Menu
ElseIf HTI.Node.Level = 2 Then
M = T3Menu
End If
tvTables.ContextMenuStrip = M
tvTables.ContextMenuStrip.Show()
End If
End Sub
Не связан с StackOverflow