martes, 17 de julio de 2012

Componente TreeView.Ejemplo 1


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