Domanda

duplicato di: Trova nodo cliccato sotto menu di contesto

Ho un menu di scelta rapida su un TreeView, quando l'utente fa clic su esso destra dovrebbe cambiare in base all'oggetto tag del nodo cliccato attualmente destra.

Al momento sto aggiornando il menu contestuale after_select evento, tuttavia questo non funziona quando l'utente fa clic destro su un altro nodo senza selezionarla.

Come posso rilevare che il nodo giusto cliccato e cambiare il menu di scelta rapida? O sono io che faccio male?

È stato utile?

Soluzione

È possibile utilizzare l'evento MouseDown e il metodo HitTest per scoprire quale nodo è stato fatto clic.

Altri suggerimenti

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top