Control tree view

Necesito crear una aplicación que me muestro un árbol de directorios a partir de uno indicado y me interesaría mucho colocar un contro tree view, podría alguien decirme como hacerlo. ¿Cómo se usa el control tree view?, o cualquier otroa forma de solucionar el problema.

1 respuesta

Respuesta
1
Te paso un ejemplo...
Crea un proyecto nuevo
Hace "Project" - "Components" y selecciona "Microsoft Windows Common Controls 6.0"
Hace "Project" - "References" y selecciona "Microsoft Scripting Runtime"
Añadile al form estos controles:
- Un TextBox
- Un CommandButton
- Un TreeView
Pegale al form el siguiente codigo:
Option Explicit
Dim iFSO As Scripting.FileSystemObject
Private Sub Form_Initialize()
Set iFSO = New Scripting.FileSystemObject
End Sub
Private Sub Form_Terminate()
Set iFSO = Nothing
End Sub
Private Sub Command1_Click()
Dim iDirectorio As Scripting.Folder
Dim iNodo As MSComctlLib.Node
Set iDirectorio = iFSO.GetFolder(Text1.Text)
Set iNodo = TreeView1.Nodes.Add(, , , iDirectorio.Path)
iPoblarHijos iNodo, iDirectorio
iNodo.EnsureVisible
Set iNodo = Nothing
Set iDirectorio = Nothing
End Sub
Private Function iPoblarHijos(ByVal Nodo As MSComctlLib.Node, ByVal Directorio As Scripting.Folder)
Dim iDirectorio As Scripting.Folder
Dim iNodo As MSComctlLib.Node
For Each iDirectorio In Directorio.SubFolders
Set iNodo = TreeView1.Nodes.Add(Nodo, tvwChild, , iDirectorio.Name)
iPoblarHijos iNodo, iDirectorio
Set iNodo = Nothing
Next
Nodo.Expanded = True
End Function
Salva y ejecuta el proyecto, para probarlo escribí en el TextBox un directorio, y presiona el CommandButton
Fíjate que el directorio este bien escrito ya que el código no hace validaciones, ademas para probar trata de usar un directorio que no tenga muchos subdirectorios (para que no tarde tanto)
Bueno, te explico un poco...
Acá hay dos temas, uno es el uso del objeto FileSystemObject, que doy por hecho que si estas haciendo una aplicación para recorrer directorios lo conoces, si no es así y tienes dudas, te pido por favor que me las consultes en otra pregunta, para si esta se va hacer demasiado larga)
Con respecto al TreeView...
El control TreeView tiene una propiedad Nodes que es una colección de todo los Nodos que tiene el treeview, como ves en el código tiene un método Add que te permite añadir nuevos nodos, los parámetros de Add son los siguientes:
TreeView. Nodes. Add Relative, Relationship, Key, Text, Image, SelectedImage
Ademas de añadir un nodo, este método te devuelve un puntero al mismo.
Con respecto a los parámetros, los más importantes son Relative y Relationship:
Relative indica a que nodo es relativo el nodo que vas a añadir, y Relationship indica que relación tiene, es decir, fíjate en el ejemplo de la función "iPoblarHijos":
Yo le paso "Nodo" a Relative, y la constante "tvwChild" a Relationship, con lo cual le digo que el nodo que voy a añadir es "HIJO" (por el "tvwChild") de "Nodo"
Si vos quieres añadir un nodo raíz (que no tenga padres) haces como en la función "Command1_Click", en la que dejo estos parámetros vacíos.
El resto de los parámetros son:
Key, la clave en la colección de nodo (Key existe para todos los objetos Collection)
Text, el texto que aparece en el nodo
Image, SelectedImage, el numero de imagen que posse el nodo, cuando esta libre (Image) y cuando esta seleccionado (SelectedImage)
Para usar Image, SelectedImage tienes que asociar el TreeView a un ImageList
Ademas del metodo Add, la coleccion Nodes posee los metodos:
TreeView. Nodes. Remove: quita un nodo del arbol, recibe como parametro el Index del nodo (en todas las colecciones cada elemento tiene un indice)
TreeView1. Nodes. Clear: borra todos los nodos
TreeView1. Nodes. Count: te da la cantidad de nodos
TreeView1. Nodes. Item: te devuelve un nodo por su indice (igual que Remove)
Estoy mencionando mucho el objecto Collection y las colecciones (doy por hecho que conoces el tema), si tienes dudas sobre el tema, igual que antes te pido que m

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas