Menu de contexto dinâmico no Treeview Nodes
-
21-08-2019 - |
Pergunta
duplicata de: Encontrar nó clicado no menu de contexto
Eu tenho um menu de contexto em um Treeview, quando os cliques direito de usuário que deveria mudar com base em objeto tag do nó atualmente direito clicado.
Atualmente estou atualizando o menu de contexto no after_select evento, no entanto, isso não funciona quando o usuário direita cliques para outro nó sem selecioná-lo.
Como posso detectar qual nó direito clicado e mudar o menu de contexto? Ou eu estou fazendo errado?
Solução
Você pode usar o evento MouseDown e o método HitTest para descobrir qual nó foi clicado.
Outras dicas
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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow