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?

Foi útil?

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
scroll top