Question

Dupliquer de: Trouver nœud cliqué dans le menu contextuel

J'ai un menu contextuel sur un Treeview, lorsque l'utilisateur clique droit il censé changer en fonction de l'objet de l'étiquette du nœud cliquée actuellement droit.

Actuellement, je suis mise à jour du menu contextuel dans after_select cas, mais cela ne fonctionne pas lorsque l'utilisateur clique droit à un autre nœud sans le sélectionner.

Comment puis-je détecter quel nœud et faites un clic droit de modifier le menu contextuel? Ou suis-je le fais mal?

Était-ce utile?

La solution

Vous pouvez utiliser l'événement MouseDown et la méthode HitTest pour savoir quel noeud a cliqué.

Autres conseils

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top