Sección de códigos , trucos y ejemplos para visual basic
502 - Cargar solo unidades y carpetas de sistema en un Treeview ( Sin subdirectorios )
<Volver>
- Anterior - Siguiente
Este es un simple módulo de clase en vb para poder cargar en un Treeview, las unidades y carpetas de sistema, similar al explorer. Pero no es igual al explorador de windows, solo visualiza las unidades y las carpetas especiales, es decir que no carga y muestra la estructura de directorios al seleccionar una carpeta o recurso del sistema. Se podría decir que es similar al control Drive de vb, pero utilizando un Treeview, y con algunas otras opciones extra en comparación al Drive, como la de poder:
- Mostrar solo unidades
- Mostrar unidades+Algunas carpetas de sistema de windows ( Font, windows, system32, Archivos de programa)
- Mostrar unidades+Directorios de sistema del usuario actual
- Mostrar unidades+Directorios de sistema de todos los usuarios
Nota. El módulo no está completo, solo tiene implementadas las opciones mencionadas anteriormente, pero obviamente se le pueden añadir muchas otras funciones.
Algunas de ellas podrían ser:
- En vez de cargar todas las carpetas en el método Init del módulo, hacerlo mediante un método propio. De este modo se podría recorrer la colección de carpetas y añadir las que se quieran, ya que como está realizado, carga todas. De todas formas se podría hacer, eliminando de la colección los elementos que se quieran, y luego ejecutar el método Init nuevamente para cargar el Treeview. O crear una propiedad, que indique cuales carpetas cargar, y luego se ignoren aquellas que no se han elegido, ( todo esto en el bucle del método init que añade los nodos), o la rutina "pvInitColPathsFolders"
- Añadir la etiqueta de volumen a cada unidad. Es algo simple, solo se debería utilizar la Api GetVolumeInformation , obtener la etiqueta, y asignarla a la propiedad Text del nodo. ( ejemplo de GetVolumeInformation ). Si se añade esta función, no afectaría a la propiedad Path, ya que se utiliza la clave para hacer referencia a la Ruta, no la propiedad Text. Por lo tanto no hay que modificar otras rutinas.
- Añadir la opción Mis sitios de Red ( no está implementado ), al igual que algunas otras como la papelera.
- El módulo carga en el Treeview todo en una lista ( no se crea en ningún momento subNodos). Entonces, otra opción podría ser agrupar en nodos: Un Nodo para los drives, otro nodo para las carpetas del usuario, y otro para las carpetas de windows. ( Para que quede mas organizado)
- Ordenar alfabéticamente las colecciones de carpetas utilizando algún algoritmo de ordenación, ya que como está realizado el ejemplo, no sirve utilizar la propiedad Sorted del Treeview, por que las unidades no quedarían al comienzo, es decir quedarían mezcladas entre toda la lista. ( Creo que si se implementa la opción anterior, ahora si se podria utilizar la propiedad Sorted, no el Sorted del Treeview, si no el Sorted del nodo)
- Agregar algunos eventos, el ejemplo es bien simple y solo contiene uno que permite obtener el path actual, para de este modo utilizarlo con algún otro control que liste los directorios+archivos.
Nota importante: Probar el ejemplo en otras versiones de windows para comprobar que no tiene errores, ya que solo se probó en XP. ( Aunque tampoco aseguro que no tenga algún error en xp )
Vista previa del ejemplo



Crear el ejemplo:
- Iniciar un nuevo proyecto
- Añadir un módulo de clase. Cambiar el nombre del Módulo ( por defecto Class1) a clsTVDrives ( Sin espacios )
- Agregar la referencia a windows CommonControls 5. Añadir un Treeview ( Treeview1) y un ImageList (ImageList1)
- Añadir cuatro Option Button en un Array ( Option1(0), Option1(1), Option1(2) y Option1(3))
- Agregar una caja de verificación ( Check1)
- Dos botones ( Command1 y Command2 )
Importante : Para utilizarlo con el Treeview de la versión 6, hay que cambiar esta línea
Private Sub mTVDrives_NodeClick(ByVal Node As ComctlLib.Node)
por esta otra
Private Sub mTVDrives_NodeClick(ByVal Node As MsComctlLib.Node)
Código fuente en el Form
Código fuente en el módulo de clase ( clsTVDrives )
Enlaces relacionados
Recursos
visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar