Cargar un control TreeView

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

Sube Tu Queja

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. esta muy claro el manejo, muchas gracias una pregunta tengo un programa con treeview con unos archivos pdf que se despliegan al dar click pero necesito crear un boton que despliegue el archivo anterior al seleccionado como puedo hacer esto



  2. me puden dar un ejemplo de conectar c sharemaje a mysql

  3. mauro andres gonzalez barahona:
    Miércoles 21 de Octubre de 2009 a las 16:34hs


    neta???? no chinguen vivi engañado toda la vida, penc que solo en java que pendejo soy, saludos putitos. alguien tiene juegos de pc???



  4. Buenas tardes quiero hacer una pregunta urgente sobre un treeview que estoy haciendo en ASP .net (aspx)

    Tengo cargado un arbol (similar a Explorer de windows) pero el problema esta en que cuando doy click sobre un nodo debe desplegarse los hijos y el foco quedarse en el mismo lugar, Lo que me pasa es que si estoy por ejemplo al final del arbol y doy click sobre un nodo, siempre se em esta volviendo a cargar el arbol y me lleva al inicio, es ahi cuando tengo que bajar con el ascensor hasta donde la carpeta donde di click.

    Como puedo hacer para que el arbol no se vaya siempre al inicio y se quede donde si click ??

    Gracias su ayuda urgente



  5. Existe la forma de cargar el Treeview, pero de manera dinámica ensalada con una base de datos como MySQL.

    saludos buen tema.



  6. excelente una explicacion sencilla pero muuy util para adentrarnos a este fantastico control ocx. Pagina como esta hay pocas. bien guru sigue adelante!!!



  7. Lo de Error 91 es problema del parent , sacalo para que te pueda abrir el parent



  8. realizarun treview pero en java



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



  10. 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

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

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API