Frage

Duplizieren von: Knoten unter Kontextmenü angeklickt finden

Ich habe ein Kontextmenü auf einem Treeview bekam, wenn der Benutzer klickt rechts auf der Grundlage des derzeit rechten klickten Knotens Tag-Objekt ändern soll.

Zur Zeit das Kontextmenüs in after_select Ereignisse mir Aktualisierung, aber dies funktioniert nicht, wenn der Benutzer direkt auf einem anderen Knoten klickt, ohne sie zu wählen.

Wie kann ich erkennen, welche Knoten rechts geklickt und das Kontextmenü ändern? Oder bin ich es falsch?

War es hilfreich?

Lösung

Sie können das Mousedown-Ereignis verwenden und die HitTest Methode, um herauszufinden, welcher Knoten geklickt wurde.

Andere Tipps

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top