Sesion03_Uso de Los Controles TreeView y ListView

6
Instructor: Jorge Luis Vizcarra Cárdenas 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.

description

aadsdsd

Transcript of Sesion03_Uso de Los Controles TreeView y ListView

  • Instructor: Jorge Luis Vizcarra Crdenas

    Curso: Visual Basic Avanzado Sesin 03

    Tema: Uso de los Controles TreeView y ListView

    TEORA

    CONTROL TREEVIEW:

    Muestra una coleccin jerrquica de elementos con etiquetas, representado cada uno por un

    TreeNode. Un objeto TreeNode representa un nodo.

    La coleccin Nodes contiene todos los objetos TreeNode asignados al control TreeView.A los

    nodos de rbol de esta coleccin se les conoce como los nodos de rbol raz. Cualquier nodo de

    rbol que se agregue posteriormente a un nodo de rbol raz se conoce como nodo secundario.

    Como cada TreeNode puede contener una coleccin de otros objetos TreeNode, puede ser difcil

    determinar la ubicacin en la estructura de rbol cuando se recorre la coleccin en iteracin. Se

    puede analizar la cadena TreeNode.FullPath usando el valor de la cadena PathSeparator para

    determinar dnde empieza y termina una etiqueta TreeNode.

    Se pueden mostrar imgenes 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 imgenes:

    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 imgenes a las que hacen referencia los valores de las propiedades ImageIndex y

    SelectedImageIndex son las imgenes predeterminadas que muestran todos los nodos de rbol

    asignados a la coleccin Nodes.Los nodos de rbol individuales pueden reemplazar las imgenes

    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 botn con el signo ms (+),

    si se muestra al lado del TreeNode, o se puede expandir el TreeNode llamando al mtodo

    TreeNode.Expand. Para expandir todos los niveles de nodos de rbol secundarios de la coleccin

    Nodes, llame al mtodo ExpandAll. El nivel secundario del TreeNode se puede contraer llamando

    al mtodo TreeNode.Collapse, o el usuario puede presionar el botn con el signo menos (-) si se

    muestra al lado del TreeNode. Tambin se puede llamar al mtodo TreeNode.Toggle para alternar

    los estados de rbol expandido y contrado.

  • Instructor: Jorge Luis Vizcarra Crdenas

    Si se desea, los nodos de rbol pueden mostrar casillas.Para mostrar casillas, establezca la

    propiedad CheckBoxes de la TreeView en true.La propiedad Checked se establece en true para

    nodos de rbol en estado activado.

    La apariencia del control TreeView se puede cambiar estableciendo algunas de sus propiedades de

    presentacin y estilo.Si se establece ShowPlusMinus en true, se muestra un botn con el signo

    ms (+) o con el signo menos (-) junto a cada TreeNode que se puede expandir o contraer, segn

    corresponda.Si se establece la propiedad ShowRootLines en true, la TreeView muestra lneas que

    unen entre s todos los nodos de rbol raz.Se pueden mostrar lneas que unan los nodos de rbol

    secundarios con su correspondiente nodo raz estableciendo la propiedad ShowLines en true. Si se

    establece la propiedad HotTracking en true, cambia la apariencia de las etiquetas de nodo de rbol

    cuando el puntero del mouse pasa sobre ellas.Cuando se hace un seguimiento completo de las

    etiquetas de los nodos de rbol, dichas etiquetas tienen el aspecto de un hipervnculo. Tambin se

    puede personalizar totalmente la apariencia del control TreeView. Para ello, establezca la

    propiedad DrawMode en un valor distinto de TreeViewDrawMode. Normal y controle el evento

    DrawNode.

    CONTROL LISTVIEW:

    Representa un control de vista de lista de Windows, el cual muestra una coleccin de elementos

    que se pueden ver mediante una de cuatro vistas distintas.

    Un control ListView permite mostrar una lista de elementos con texto y, de forma opcional, con un

    icono que identifique el tipo de elemento.Por ejemplo, la lista de archivos del Explorador de

    Windows es similar en apariencia a un control ListView.Muestra una lista de los archivos y

    carpetas seleccionados actualmente en el rbol.Cada archivo y cada carpeta muestra un icono

    asociado para ayudar a identificar el tipo de archivo o carpeta.La clase ListViewItem representa un

    elemento dentro de un control ListView.Los elementos que se muestran en la lista se pueden

    presentar en una de cinco vistas distintas.Se pueden mostrar como iconos grandes, como iconos

    pequeos o como iconos pequeos en una lista vertical.Los elementos tambin pueden tener

    subelementos que contengan informacin relacionada con el elemento primario.La vista de

    detalles permite mostrar el elemento y sus subelementos en una cuadrcula con encabezados de

    columna que identifican la informacin que se presenta en un subelemento.La vista en mosaico,

    que tiene una disponibilidad limitada tal como se describe ms abajo, permite mostrar el

    elemento y sus subelementos como un mosaico que contiene un icono grande junto a la

    informacin textual.ListView admite una seleccin nica o mltiple.La caracterstica de seleccin

    mltiple permite a los usuarios hacer su seleccin en una lista de elementos de forma similar a un

    control ListBox.Adems, el usuario puede activar elementos seleccionados para realizar una

    tarea.Por ejemplo, se puede utilizar un control ListView para mostrar una lista de archivos que la

    aplicacin puede abrir y utilizar.El usuario puede seleccionar los archivos que desea abrir y, a

    continuacin, hacer doble clic en ellos para activar los elementos y abrir los archivos en la

    aplicacin.El ListView tambin puede mostrar casillas, mediante la propiedad CheckBoxes, para

  • Instructor: Jorge Luis Vizcarra Crdenas

    permitir al usuario activar los elementos sobre los que desea realizar una accin.El control

    ListView se puede utilizar de diversas formas.Por ejemplo, para mostrar informacin de una

    aplicacin, una base de datos o un archivo de texto.El ListView tambin se puede utilizar para

    obtener informacin suministrada por el usuario, como la seleccin de un conjunto de archivos

    para su procesamiento.

    ListView ofrece un gran nmero de propiedades que proporcionan flexibilidad a la apariencia y al

    comportamiento. La propiedad View permite cambiar la forma en la que se muestran los

    elementos.Las propiedades LargeImageList, SmallImageList y StateImageList permiten especificar

    los objetos ImageList que contienen las imgenes que se muestran para los elementos y, en el

    caso del StateImageList, las casillas que se muestran cuando la propiedad CheckBoxes est

    establecida en true. Para determinar los elementos activados, puede utilizar la propiedad

    CheckedItems para obtener acceso a la coleccin ListView.CheckedListViewItemCollection.La

    propiedad Columns permite obtener acceso al ListView.ColumnHeaderCollection, el cual almacena

    los encabezados de columna que se muestran cuando la propiedad View del control est

    establecida en Details.Los elementos se agregan y se quitan del ListView mediante la propiedad

    Items.La propiedad Items permite obtener acceso al ListView.ListViewItemCollection del control,

    el cual proporciona mtodos para manipular los elementos del control.Si desea permitir al usuario

    editar el texto de un elemento, puede utilizar la propiedad LabelEdit.Cuando el control contiene

    un gran nmero de elementos, a veces es ms sencillo para el usuario verlos de forma

    ordenada.Se puede utilizar la propiedad Sorting para ordenar los elementos alfabticamente.

    Tambin se puede personalizar totalmente la apariencia de un control ListView.Para ello,

    establezca el valor de la propiedad OwnerDraw en true y controle uno o varios de los siguientes

    eventos: DrawItem, DrawSubItem y DrawColumnHeader.

    Muchas de las propiedades del control ListView se utilizan cuando la propiedad View est

    establecida en Details. La propiedad AllowColumnReorder permite al usuario del control ListView

    volver a configurar el orden de las columnas en tiempo de ejecucin.La propiedad FullRowSelect

    permite seleccionar un elemento y sus subelementos en lugar de slo el elemento.Para mostrar

    lneas de cuadrcula en la vista de detalles que identifiquen los lmites de los elementos y

    subelementos en el ListView, se puede usar la propiedad GridLines. La propiedad HeaderStyle

    permite especificar el tipo de encabezado de columna que se va a mostrar.

    Un control ListView puede funcionar en modo virtual, donde los objetos ListViewItem se generan

    dinmicamente en vez de almacenarse en la coleccin de Items.Esto puede ser til para ocuparse

    de listas muy largas o cuyo contenido cambie frecuentemente .Para habilitar el modo virtual,

    establezca la propiedad VirtualMode en true y controle los eventos RetrieveVirtualItem,

    CacheVirtualItems y SearchForVirtualItem.

    Adems de las distintas propiedades disponibles para un control ListView, existen mtodos y

    eventos que la aplicacin puede utilizar para proporcionar funciones adicionales al ListView.Los

    mtodos BeginUpdate y EndUpdate permiten mejorar el rendimiento cuando se agregan muchos

    elementos a un control ListView, impidiendo que se vuelva a dibujar el control cada vez que se

    agrega un elemento.Si el control ListView muestra elementos y subelementos, es posible que

  • Instructor: Jorge Luis Vizcarra Crdenas

    desee proporcionar alguna funcionalidad cuando el usuario haga clic con el botn secundario del

    mouse en un subelemento.Para determinar el elemento en cuyo subelemento se est haciendo

    clic, se puede utilizar el mtodo GetItemAt.Al realizar la validacin de los elementos despus de

    que el usuario los haya editado, es posible que desee mostrar un elemento especfico al usuario

    para que lo cambie.Se puede llamar al mtodo EnsureVisible para garantizar que el elemento

    especfico se encuentre en el rea visible del control.

    Si la propiedad LabelEdit est establecida en true, se pueden realizar tareas como la validacin del

    texto editado antes y despus de cambiarlo mediante la creacin de un controlador de eventos

    para los eventos BeforeLabelEdit y AfterLabelEdit.Para realizar tareas como la apertura de un

    archivo o la presentacin de un cuadro de dilogo para editar un elemento mostrado en un

    ListView, puede crear un controlador de eventos para el evento ItemActivate.Si permite al usuario

    ordenar los elementos de un ListView al hacer clic en un encabezado de columna, puede crear un

    controlador de eventos para el evento ColumnClick que realice la ordenacin.Cuando la propiedad

    CheckBoxes est establecida en true, puede determinar cundo se ha producido un cambio en el

    estado de activacin de un elemento mediante el control del evento ItemCheck.

    Tambin puede establecer una imagen de fondo para ListView con la propiedad

    BackgroundImage.La aplicacin debe tener STAThreadAttribute en su mtodo Main para mostrar

    correctamente la imagen de fondo para el control ListView.Adems, si un control ListView con una

    imagen de fondo se hospeda en Internet Explorer, para garantizar que la imagen de fondo se

    muestra correctamente hay que especificar la versin 6.0 de comctl32.dll como el ensamblado

    dependiente en el archivo de manifiesto de aplicacin.

    INFORMACIN ADICIONAL:

    Para obtener informacin adicional respecto al control Treeview, puede seguir este link:

    http://msdn.microsoft.com/es-es/library/system.windows.forms.treeview.aspx

    Para obtener informacin adicional respecto al control ListView, puede seguir el siguiente

    link: http://msdn.microsoft.com/es-es/library/system.windows.forms.listview.aspx

    Fuente:

  • Instructor: Jorge Luis Vizcarra Crdenas

    CREANDO UNA APLICACIN DE EJEMPLO:

    Construir un visor de unidades de almacenamiento, carpetas y archivos de la PC

    1. Inicie Visual Studio 2008 y cree un nuevo proyecto basado en la plantilla Aplicaciones de

    Windows Forms

    2. Cree la siguiente Interfaz de Usuario, (Controles utilizados: Panel(3), Button (2),

    ComboBox(1), TreeView(1), ListView(1). El Instructor le indicar el proceso de creacin de

    la Interfaz, incluyendo cambio de nombre en los objetos.

    3. Haga Doble click en el botn titulado Crear y en el evento, escriba el siguiente cdigo,

    antes de escribir este cdigo, asegrese que incluir la llamada al espacio de nombres

    System.IO para poder utilizarla en esta aplicacin:

  • Instructor: Jorge Luis Vizcarra Crdenas

    4. Haga doble click en el control Treeview y escriba el siguiente cdigo en el evento

    5. Defina la Funcin CleanPath como se muestra a continuacin

    6. Haga doble click en el ComboBox de la parte superior de su formulario y en el evento

    escriba el siguiente cdigo:

    No olvide habilitar el espacio de Nombres System.IO al inicio de su cdigo

    Pruebe el formulario y verifique que pueda desplazarse entre unidades de almacenamiento y

    carpetas de su computadora.