Pregunta

duplicado de: Encuentra nodo hecho clic en el menú de contexto

Tengo un menú contextual en una vista de árbol, cuando el derecho de usuario clics que supone cambiar basado en objeto etiqueta del nodo se ha hecho clic Actualmente derecha.

Actualmente estoy actualizando el menú contextual en after_select caso, sin embargo, esto no funciona cuando el usuario hace clic derecho a otro nodo sin seleccionarlo.

¿Cómo puedo detectar qué nodo clic derecho y cambiar el menú de contexto? O estoy haciendo mal?

¿Fue útil?

Solución

Puede utilizar el evento MouseDown y el método HitTest para averiguar qué nodo se ha hecho clic.

Otros consejos

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top