Este componente es
parecido a ListView, cada elemento tiene su clave y añade
la vista en árbol de los
elementos. Añade texto y una imagen si queremos,los cuales
podemos seleccionar.
Con la clave, sabremos a
que rama en cuestión pertenece el elemento.
Volvemos a usar
propiedades como “Item” y “Current”. Estas propiedades
son muy comunes en estos
componentes semejantes a listas. Repasar ListView.
En este ejemplo,
seleccionamos una opción si es una amistad, cliente o proveedor
y se añade a su rama
concreta con el botón. También podemos eliminarlo del TreeView.
---código---
Private numpersona As
Integer
Private
opcionseleccionada As Integer
Private imagen1 As
Picture
Private imagen2 As
Picture
Public Sub _new()
End
Public Sub Form_Open()
Me.Title
= "Ejemplo con TreeView"
Me.Center
imagen1
= Picture["Alegre.png"]
imagen2
= Picture["Serio.png"]
tvContactos.Add("Contactos",
"Contactos") 'Nodo Raíz
tvContactos.Add("Amistades",
"Amistades",, "Contactos") 'Nodo Padre
tvContactos.Add("Clientes",
"Clientes",, "Contactos") 'Nodo Padre
tvContactos.Add("Proveedores",
"Proveedores",, "Contactos") 'Nodo Padre
tvContactos["Contactos"].Expanded
= True 'Presentamos el nodo raíz abierto o
expandido
numpersona
= 1 'Iniciamos el
contador de personas en 1
End
Public Sub
btnBorrar_Click()
'No queremos borrar el nodo raíz ni tampoco sus nodos padres
If
tvContactos.Key <> "Contactos" And tvContactos.Key <>
"Amistades" And tvContactos.Key <> "Clientes"
And tvContactos.Key <> "Proveedores" Then
tvContactos.Remove(tvContactos.Key)
Else
Message.Info("No se puede eliminar el nodo raíz o padre")
Endif
End
Public Sub
Contactos_Click()
opcionseleccionada =
Last.tag
End
Public Sub
btnSalir_Click()
Me.Close
End
Public Sub btnAdd_Click()
'Según seleccionamos nuestra opción, añadimos un nodo hijo al nodo
padre
Select Case opcionseleccionada
Case 0
tvContactos.Add("Persona-" & numpersona, "Persona-"
& numpersona, imagen1, "Amistades")
Case 1
tvContactos.Add("Persona-" & numpersona, "Persona-"
& numpersona, imagen2, "Clientes")
Case 2
tvContactos.Add("Persona-" & numpersona, "Persona-"
& numpersona, imagen2, "Proveedores")
End Select
numpersona += 1 'Aumentamos el número de personas
End
---código---
Nuestra raíz principal,
tiene la key o clave “Contactos” con el nombre “Contactos”.
Añadimos el nodo
“Amistades”, con nombre “Amistades” a la rama principal
“Contactos”.
Hemos usado.
tvContactos.Add("Amistades",
"Amistades",, "Contactos") 'Nodo padre
Como no añadimos una
imagen, dejamos esa opción vacía en el método .Add.
Y repetimos la misma
operación para los nodos “Cliente” y “Proveedores” que son
nodos padres. Las opciones de los
contactos están formadas por una matriz de controles. Acordaros del ejemplo de la
calculadora. Los números formaban parte de un grupo, con un código
común para todos los números
evitando la repetición del mismo código por cada número.
En este caso, guardamos
el valor de “last.tag” en una variable común a todo
el formulario para saber
que opción fue seleccionada, (el índice del grupo).
Para que nuestro botón de añadir,
sepa que tipo de contacto debe añadir.
Mas información en:
Aquí tenéis el código
del ejemplo 1.
No hay comentarios:
Publicar un comentario