You are on page 1of 6

Curso: Visual Basic Avanzado – Sesión 03

Tema: Uso de los Controles TreeView y ListView

TEORÍA
CONTROL TREEVIEW:
Muestra una colección jerárquica de elementos con etiquetas, representado cada uno por un
TreeNode. Un objeto TreeNode representa un nodo.
La colección Nodes contiene todos los objetos TreeNode asignados al control TreeView.A los
nodos de árbol de esta colección se les conoce como los nodos de árbol raíz. Cualquier nodo de
árbol que se agregue posteriormente a un nodo de árbol raíz se conoce como nodo secundario.
Como cada TreeNode puede contener una colección de otros objetos TreeNode, puede ser difícil
determinar la ubicación en la estructura de árbol cuando se recorre la colección en iteración. Se
puede analizar la cadena TreeNode.FullPath usando el valor de la cadena PathSeparator para
determinar dónde empieza y termina una etiqueta TreeNode.
Se pueden mostrar imágenes junto a los nodos del árbol asignando un ImageList a la propiedad
ImageList y haciendo referencia al valor de índice de una Image de ImageList para asignar esa
Image.Utilice las propiedades siguientes para asignar las imágenes:

Establezca la propiedad ImageIndex en el valor de índice de la Image que desea que se
muestre cuando no esté seleccionado un nodo de árbol.
Establezca la propiedad SelectedImageIndex en el valor de índice de la Image que desea
que se muestre cuando no esté seleccionado un nodo de árbol.

Las imágenes a las que hacen referencia los valores de las propiedades ImageIndex y
SelectedImageIndex son las imágenes predeterminadas que muestran todos los nodos de árbol
asignados a la colección Nodes.Los nodos de árbol individuales pueden reemplazar las imágenes
predeterminadas
estableciendo
las
propiedades
TreeNode.ImageIndex
y
TreeNode.SelectedImageIndex.
Los nodos de árbol se pueden expandir para mostrar el siguiente nivel de nodos de árbol
secundarios.El usuario puede expandir el TreeNode haciendo clic en el botón con el signo más (+),
si se muestra al lado del TreeNode, o se puede expandir el TreeNode llamando al método
TreeNode.Expand. Para expandir todos los niveles de nodos de árbol secundarios de la colección
Nodes, llame al método ExpandAll. El nivel secundario del TreeNode se puede contraer llamando
al método TreeNode.Collapse, o el usuario puede presionar el botón con el signo menos (-) si se
muestra al lado del TreeNode. También se puede llamar al método TreeNode.Toggle para alternar
los estados de árbol expandido y contraído.
Instructor: Jorge Luis Vizcarra Cárdenas

a continuación. que tiene una disponibilidad limitada tal como se describe más abajo. hacer doble clic en ellos para activar los elementos y abrir los archivos en la aplicación. Normal y controle el evento DrawNode. La apariencia del control TreeView se puede cambiar estableciendo algunas de sus propiedades de presentación y estilo. de forma opcional.Cuando se hace un seguimiento completo de las etiquetas de los nodos de árbol.Por ejemplo. También se puede personalizar totalmente la apariencia del control TreeView. Un control ListView permite mostrar una lista de elementos con texto y. CONTROL LISTVIEW: Representa un control de vista de lista de Windows.Si se establece la propiedad ShowRootLines en true. para Instructor: Jorge Luis Vizcarra Cárdenas . Si se establece la propiedad HotTracking en true.Cada archivo y cada carpeta muestra un icono asociado para ayudar a identificar el tipo de archivo o carpeta.Si se desea.Si se establece ShowPlusMinus en true. se muestra un botón con el signo más (+) o con el signo menos (-) junto a cada TreeNode que se puede expandir o contraer.La propiedad Checked se establece en true para nodos de árbol en estado activado.Se pueden mostrar como iconos grandes. establezca la propiedad CheckBoxes de la TreeView en true.La característica de selección múltiple permite a los usuarios hacer su selección en una lista de elementos de forma similar a un control ListBox. el usuario puede activar elementos seleccionados para realizar una tarea. los nodos de árbol pueden mostrar casillas. según corresponda. el cual muestra una colección de elementos que se pueden ver mediante una de cuatro vistas distintas. establezca la propiedad DrawMode en un valor distinto de TreeViewDrawMode. la TreeView muestra líneas que unen entre sí todos los nodos de árbol raíz. con un icono que identifique el tipo de elemento. como iconos pequeños o como iconos pequeños en una lista vertical. cambia la apariencia de las etiquetas de nodo de árbol cuando el puntero del mouse pasa sobre ellas. dichas etiquetas tienen el aspecto de un hipervínculo. permite mostrar el elemento y sus subelementos como un mosaico que contiene un icono grande junto a la información textual.El ListView también puede mostrar casillas.Por ejemplo.Para mostrar casillas.Se pueden mostrar líneas que unan los nodos de árbol secundarios con su correspondiente nodo raíz estableciendo la propiedad ShowLines en true.Los elementos que se muestran en la lista se pueden presentar en una de cinco vistas distintas.Muestra una lista de los archivos y carpetas seleccionados actualmente en el árbol. se puede utilizar un control ListView para mostrar una lista de archivos que la aplicación puede abrir y utilizar.El usuario puede seleccionar los archivos que desea abrir y.La vista de detalles permite mostrar el elemento y sus subelementos en una cuadrícula con encabezados de columna que identifican la información que se presenta en un subelemento.Los elementos también pueden tener subelementos que contengan información relacionada con el elemento primario. la lista de archivos del Explorador de Windows es similar en apariencia a un control ListView.La vista en mosaico.La clase ListViewItem representa un elemento dentro de un control ListView. Para ello.Además. mediante la propiedad CheckBoxes.ListView admite una selección única o múltiple.

ColumnHeaderCollection. donde los objetos ListViewItem se generan dinámicamente en vez de almacenarse en la colección de Items. La propiedad View permite cambiar la forma en la que se muestran los elementos.La propiedad FullRowSelect permite seleccionar un elemento y sus subelementos en lugar de sólo el elemento. establezca la propiedad VirtualMode en true y controle los eventos RetrieveVirtualItem. Además de las distintas propiedades disponibles para un control ListView. DrawSubItem y DrawColumnHeader.Para habilitar el modo virtual. Para determinar los elementos activados.El ListView también se puede utilizar para obtener información suministrada por el usuario.Esto puede ser útil para ocuparse de listas muy largas o cuyo contenido cambie frecuentemente .La propiedad Columns permite obtener acceso al ListView.La propiedad Items permite obtener acceso al ListView.Por ejemplo.permitir al usuario activar los elementos sobre los que desea realizar una acción.El control ListView se puede utilizar de diversas formas.CheckedListViewItemCollection. las casillas que se muestran cuando la propiedad CheckBoxes está establecida en true. ListView ofrece un gran número de propiedades que proporcionan flexibilidad a la apariencia y al comportamiento. puede utilizar la propiedad CheckedItems para obtener acceso a la colección ListView. También se puede personalizar totalmente la apariencia de un control ListView. una base de datos o un archivo de texto. el cual proporciona métodos para manipular los elementos del control.Para ello. existen métodos y eventos que la aplicación puede utilizar para proporcionar funciones adicionales al ListView. como la selección de un conjunto de archivos para su procesamiento. el cual almacena los encabezados de columna que se muestran cuando la propiedad View del control está establecida en Details.Cuando el control contiene un gran número de elementos. para mostrar información de una aplicación.Si desea permitir al usuario editar el texto de un elemento.Las propiedades LargeImageList. puede utilizar la propiedad LabelEdit. La propiedad AllowColumnReorder permite al usuario del control ListView volver a configurar el orden de las columnas en tiempo de ejecución. en el caso del StateImageList. establezca el valor de la propiedad OwnerDraw en true y controle uno o varios de los siguientes eventos: DrawItem.Los elementos se agregan y se quitan del ListView mediante la propiedad Items. Muchas de las propiedades del control ListView se utilizan cuando la propiedad View está establecida en Details. es posible que Instructor: Jorge Luis Vizcarra Cárdenas . SmallImageList y StateImageList permiten especificar los objetos ImageList que contienen las imágenes que se muestran para los elementos y.Para mostrar líneas de cuadrícula en la vista de detalles que identifiquen los límites de los elementos y subelementos en el ListView. Un control ListView puede funcionar en modo virtual.Si el control ListView muestra elementos y subelementos. a veces es más sencillo para el usuario verlos de forma ordenada. impidiendo que se vuelva a dibujar el control cada vez que se agrega un elemento. La propiedad HeaderStyle permite especificar el tipo de encabezado de columna que se va a mostrar.Se puede utilizar la propiedad Sorting para ordenar los elementos alfabéticamente.Los métodos BeginUpdate y EndUpdate permiten mejorar el rendimiento cuando se agregan muchos elementos a un control ListView. CacheVirtualItems y SearchForVirtualItem.ListViewItemCollection del control. se puede usar la propiedad GridLines.

Si la propiedad LabelEdit está establecida en true. se puede utilizar el método GetItemAt.Al realizar la validación de los elementos después de que el usuario los haya editado.com/es-es/library/system.Si permite al usuario ordenar los elementos de un ListView al hacer clic en un encabezado de columna.windows.Para determinar el elemento en cuyo subelemento se está haciendo clic.treeview.aspx Para obtener información adicional respecto al control ListView. si un control ListView con una imagen de fondo se hospeda en Internet Explorer. puede seguir este link: http://msdn.Para realizar tareas como la apertura de un archivo o la presentación de un cuadro de diálogo para editar un elemento mostrado en un ListView. puede determinar cuándo se ha producido un cambio en el estado de activación de un elemento mediante el control del evento ItemCheck.Además. para garantizar que la imagen de fondo se muestra correctamente hay que especificar la versión 6.desee proporcionar alguna funcionalidad cuando el usuario haga clic con el botón secundario del mouse en un subelemento.Se puede llamar al método EnsureVisible para garantizar que el elemento específico se encuentre en el área visible del control.listview. puede crear un controlador de eventos para el evento ItemActivate. puede seguir el siguiente link: http://msdn.microsoft.Cuando la propiedad CheckBoxes está establecida en true. puede crear un controlador de eventos para el evento ColumnClick que realice la ordenación.forms.aspx Fuente: Instructor: Jorge Luis Vizcarra Cárdenas .windows.0 de comctl32. es posible que desee mostrar un elemento específico al usuario para que lo cambie.microsoft.com/es-es/library/system.dll como el ensamblado dependiente en el archivo de manifiesto de aplicación. INFORMACIÓN ADICIONAL: • • Para obtener información adicional respecto al control Treeview. se pueden realizar tareas como la validación del texto editado antes y después de cambiarlo mediante la creación de un controlador de eventos para los eventos BeforeLabelEdit y AfterLabelEdit. También puede establecer una imagen de fondo para ListView con la propiedad BackgroundImage.forms.La aplicación debe tener STAThreadAttribute en su método Main para mostrar correctamente la imagen de fondo para el control ListView.

escriba el siguiente código. carpetas y archivos de la PC 1.IO para poder utilizarla en esta aplicación: Instructor: Jorge Luis Vizcarra Cárdenas . Haga Doble click en el botón titulado “Crear” y en el evento. asegúrese que incluir la llamada al espacio de nombres System. antes de escribir este código. El Instructor le indicará el proceso de creación de la Interfaz. 3. Button (2). Inicie Visual Studio 2008 y cree un nuevo proyecto basado en la plantilla “Aplicaciones de Windows Forms” 2. Cree la siguiente Interfaz de Usuario. incluyendo cambio de nombre en los objetos. (Controles utilizados: Panel(3).CREANDO UNA APLICACIÓN DE EJEMPLO: Construir un visor de unidades de almacenamiento. ComboBox(1). TreeView(1). ListView(1).

Instructor: Jorge Luis Vizcarra Cárdenas . Haga doble click en el ComboBox de la parte superior de su formulario y en el evento escriba el siguiente código: No olvide habilitar el espacio de Nombres System.IO al inicio de su código Pruebe el formulario y verifique que pueda desplazarse entre unidades de almacenamiento y carpetas de su computadora. Haga doble click en el control Treeview y escriba el siguiente código en el evento 5.4. Defina la Función CleanPath como se muestra a continuación 6.