none
Como puedo obtener el texto nodo de 2 nivel en un treeview RRS feed

  • Pregunta

  • Hola gente necesito ayuda con un control treeview que tiene nodos en dos niveles:

    Nodo 1

           Nodo A

           Nodo B

    Nodo 2

            Nodo C

    Nodo 3 

            Nodo D

            Nodo E

    ........

    Lo que necesito saber es que evento usar para detectar el click SOLO cuando se hagan en nodos de 2 nivel (A,B,C,D,E...) y recuperar por separado el text del nodo clickeado y del nodo padre. ej: text Nodo D y text Nodo 3 SOLO cuando hago click en Nodo D

    Muchas Gracias.



    • Editado CocoDongo miércoles, 13 de septiembre de 2017 22:05
    miércoles, 13 de septiembre de 2017 22:05

Respuestas

  • Puedes utilizar la propiedad 'Level' para comprobar la profundidad del nodo del árbol, por ejemplo:

    Private Sub TreeView1_NodeMouseClick(sender As Object, e As ...
    
    	If e.Node.Level = 1 Then
    		Dim ParentNode = e.Node.Parent
    		Dim ChildNode = e.Node
    
    		MessageBox.Show($"Nodo Padre: {ParentNode.Text} - Nodo Hijo: {ChildNode.Text}")
    	End If
    
    End Sub


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    jueves, 14 de septiembre de 2017 4:51

Todas las respuestas

  •   Private CheckingFromChildNode As Boolean = False
        Private Sub TvwEmprTienda_AfterCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TvwEmprTienda.AfterCheck
            If CheckingFromChildNode Then Return

            TvwEmprTienda.BeginUpdate()

            If e.Node.Nodes.Count <> 0 Then
                MarcarDesmarcarSubNodos(e.Node.Nodes, e.Node.Checked)
            End If

            If e.Node.Parent IsNot Nothing Then
                Dim marcados As Integer = e.Node.Parent.Nodes.OfType(Of TreeNode).Count(Function(pre) pre.Checked)
                lblnodo.Text = e.Node.Parent.FullPath & e.Node.Parent.Text
                CheckingFromChildNode = True
                e.Node.Parent.Checked = marcados > 0
                CheckingFromChildNode = False
            End If

            TvwEmprTienda.EndUpdate()

        End Sub
    miércoles, 13 de septiembre de 2017 22:57
  • Puedes utilizar la propiedad 'Level' para comprobar la profundidad del nodo del árbol, por ejemplo:

    Private Sub TreeView1_NodeMouseClick(sender As Object, e As ...
    
    	If e.Node.Level = 1 Then
    		Dim ParentNode = e.Node.Parent
    		Dim ChildNode = e.Node
    
    		MessageBox.Show($"Nodo Padre: {ParentNode.Text} - Nodo Hijo: {ChildNode.Text}")
    	End If
    
    End Sub


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    jueves, 14 de septiembre de 2017 4:51