Cargar un control TreeView

Escrito por Luis Serrano Rodriguez el Jueves 05 de Mayo de 2005 a las 00:00hs

Para trabajar con este control, primero es necesario añadir el componente en la barra de herramientas. Para ello vamos al cuadro de dialogo Componentes y marcamos el control Microsoft Windows Common Controls 6.0 Apareceran varios controles y entre ellos el que nos interesa: TreeView.

Lo que se va a hacer en este ejemplo va a ser cargar el control de forma manual sin utilizar ningun origen de datos. El resultado final será como el de la imagen...

Este es el codigo para empezar a cargar de forma manual cada nodo del arbol y sus ramas. Al objeto TreeView le hemos llamada arbol. Despues, debe crearse una variable de tipo Node a la que se va a añadir con el metodo Add cada nodo. La sintaxis de este metodo es:

objeto.Add(NodoReferencia, PosRelativa, clave, texto, imagen, imgSeleccion)

El primer nodo padre sera CLIENTES, y sus sucesivos hijos desde Amigos1 hasta Amigos8. Una vez cargado el nodo padre pasamos a cargar los nodos hijos. El esquema a seguir es el siguiente: para hacer referencia al nodo padre utilizamos como nodo-referencia el nombre "Raiz". Despues indicamos como parametro a PosRelativa con el valor tvwChild. Para el parametro clave hemos utilizado en este caso "clave1" hasta "clave8". Para el texto, como ultimo parametro cualquier nombre.

Para el resto de nodos padres e hijos se actua de la misma forma.

Private Sub Command1_Click()

Dim nodo As Node 'variable nodo de tipo Node

Set nodo = arbol1.Nodes.Add(, , "Raiz", "CLIENTES")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave1", "Amigos1")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave2", "Amigos2")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave3", "Amigos3")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave4", "Amigos4")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave5", "Amigos5")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave6", "Amigos6")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave7", "Amigos7")
Set nodo = arbol1.Nodes.Add("Raiz", tvwChild, "clave8", "Amigos8")

Set nodo = arbol1.Nodes.Add(, , "Raiz2", "FACTURAS")

Set nodo = arbol1.Nodes.Add("Raiz2", tvwChild, "clave9", "Amigos9")
Set nodo = arbol1.Nodes.Add("Raiz2", tvwChild, "clave10", "Amigos10")

Set nodo = arbol1.Nodes.Add(, , "Raiz3", "PEDIDOS")

Set nodo = arbol1.Nodes.Add("Raiz3", tvwChild, "clave11", "Amigos11")

End Sub

Para hacer referencia a cada nodo cuando se haga click sobre uno de ellos, se utiliza el evento objeto_NodeClick(ByVal Node As MSComctlLib.Node)

Private Sub arbol1_NodeClick(ByVal Node As MSComctlLib.Node)

Label1.Caption = Node.Parent + " " + Node.Key + " " + Node.Text

End Sub

Utilizamos tres propiedades: Parent, Key y Text. Parent se refiere al nodo padre, Key al parametro clave y la propiedad Text visualiza el texto del nodo. Al hacer click sobre un nodo obtendremos sobre un control etiqueta, Label1.Caption, la informacion referenciada. Si hacemos click sobre el nodo hijo Amigos3 se verá como resultado...

CLIENTES, clave3, Amigos3


comentarios



  1. Estimados amigos este manual me ha parecido el más facil de entender, es por eso que les agradeceria mucho si me pudieran enviar más información hacerca de el manejo del control TreeView; he estado probando este codigo pero me sale un mensaje de error en este evento al escribir el siguiente codigo:

    Private Sub arbol1_NodeClick(ByVal Node As MSComctlLib.Node)

    Label1.Caption = Node.Parent + " " + Node.Key + " " + Node.Text

    End Sub

    el mensaje es:

    Error “91” en tiempo de ejecución :

    Variable de tipo Object o la variable de bloque With no está establecida



  2. es muy buena la informacion pero necesito treeview para progress

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad