ImageCombo (Control)

El control ImageCombo es una versión del cuadro combinado estándar de Windows habilitada para aceptar imágenes. Es posible asociar una imagen a cada elemento de la parte de lista del control.

Además de admitir imágenes, el control ImageCombo actúa como una colección y una lista de objetos. Cada elemento de la parte de lista del control es un objeto ComboItem distinto de los demás y, juntos, todos los elementos de la lista constituyen la colección ComboItems. Esto simplifica la tarea de especificar propiedades elemento por elemento, por ejemplo, el texto de una etiqueta, un texto de información, el valor de una clave y el nivel de sangría.

Sintaxis

ImageCombo

Comentarios

Con un control ImageCombo puede mostrar una lista de elementos que incluyen imágenes. Es posible hacer que cada elemento tenga su propia imagen o bien emplear la misma imagen para múltiples elementos de una lista.

El control ImageCombo contiene una colección de objetos ComboItem. Un objeto ComboItem define las distintas características de los elementos mostrados en la parte de lista del control.

Además de mostrar imágenes en los elementos de la lista, el control ImageCombo utiliza colecciones y objetos para administrar la parte de lista del control. Gracias a esto se simplifica el manejo de las entradas de la lista, utilizando los conocidos conceptos de colección y objeto, como los métodos Add, Remove y Clear, y también las construcciones For Each, With... y End With.

Nota El control ImageCombo forma parte de un grupo de controles ActiveX incluidos dentro del archivo COMCT232.ocx. Antes de poder usar el control ImageCombo en su aplicación debe agregar el archivo COMCT232.ocx al proyecto. Al distribuir su aplicación, instale el archivo COMCT232.ocx en el directorio System o System32 de Microsoft Windows. Para obtener más información acerca de cómo agregar un control ActiveX a un proyecto, vea "Agregar controles a un proyecto" en el Manual del programador.


ImageList (Control)

Un control ImageList contiene una colección de objetos ListImage, a cada uno de los cuales se puede hacer referencia mediante su índice o su clave. El control ImageList no está concebido para usarlo en solitario, sino como punto de almacenamiento central para proporcionar cómodamente imágenes a otros controles.

Sintaxis

ImageList

Comentarios

El control ImageList funciona como un almacén de imágenes, y como tal, necesita un control secundario para mostrar las imágenes almacenadas. El segundo control puede ser cualquier control que pueda mostrar un objeto Picture, o puede ser uno de los controles comunes de Windows diseñados especialmente para ser enlazados con el control ImageList. Éstos controles son los controles ListView, ToolBar, TabStrip, Header, ImageCombo y TreeView. Para usar un control ImageList con uno de estos controles, debe enlazar un control ImageList particular con el segundo control mediante una propiedad adecuada. Para el control ListView debe establecer las propiedades Icons y SmallIcons de los controles ImageList. Para los controles TreeView, TabStrip, ImageCombo y Toolbar la propiedad ImageList debe ser un control ImageList.

Durante el diseño del programa puede agregar imágenes mediante la ficha Imágenes del cuadro de diálogo Propiedades del control ImageList. En tiempo de ejecución puede agregar imágenes mediante el método Add para la colección ListImages.

Para los controles comunes de Windows, puede especificar un ImageList durante el diseño del programa mediante el cuadro de diálogo Propiedades personalizadas. En tiempo de ejecución puede especificar también un control ImageList utilizando la propiedad ImageList, como en el ejemplo siguiente:

TreeView1.ImageList = ImageList1  ' Especifica ImageList

Importante Al usar el control ImageList con controles comunes de Windows, es necesario insertar todas las imágenes que necesitará en el orden adecuado, en el control ImageList antes de enlazarlo al control secundario. Una vez que ImageList está enlazado a un control secundario, no puede eliminar imágenes, y no puede insertar imágenes en la mitad de la colección ListImages. A pesar de todo, puede agregar imágenes al final de la colección.

Una vez asociado un ImageList con un control común de Windows, puede usar el valor de la propiedad Index o Key para hacer referencia a un objeto ListImage en un procedimiento. El ejemplo siguiente establece la propiedad Image del tercer objeto Node de un control TreeView al primer objeto ListImage de un control ImageList:

' Usa el valor de la propiedad Index de ImageList1.
TreeView1.Nodes(3).Image = 1
' O usa el valor de la propiedad Key.
TreeView1.Nodes(3).Image = "imagen 1"   ' Suponiendo que Key es "imagen 1".

Para usar el control ImageList con otros controles (que no se pueden enlazar al control ImageList), asigne la propiedad Picture del segundo control al objeto Picture de cualquier imagen en el control ImageList. Por ejemplo, el código siguiente asigna el objeto Picture del primer objeto ListImage de una colección ListImages a la propiedad Picture de un panel StatusBar creado recientemente:

Dim pnlX As Panel
Set pnlX = StatusBar1.Panels.Add() ' Agrega un nuevo objeto Panel.
Set pnlX.Picture = ImageList1.ListImages(1).Picture ' Establece Picture.

Nota Debe usar la instrucción Set al asignar una imagen al objeto Picture.

Puede insertar una imagen de cualquier tamaño en el control ImageList. A pesar de todo, el tamaño de la imagen mostrada por el segundo control depende de un factor: si el control secundario es o no un control común de Windows enlazado al control ImageList.

Cuando el control ImageList está enlazado a otro control común de Windows, es posible agregar imágenes de diferentes tamaños al control, a pesar de todo el tamaño de la imagen mostrada en el control común de Windows asociado se ajustará al tamaño de la primera imagen agregada a ImageList. Por ejemplo, si agrega una imagen de 16 por 16 píxeles a un control ImageList, se enlaza ImageList a un control TreeView (para mostrarse en objetos Node), todas las imágenes almacenadas en un control ImageList se mostrarán con 16 por 16 píxeles, incluso si son mucho mayores o mucho menores.

Por otra parte, si muestra imágenes usando el objeto Picture, cualquier imagen almacenada en el control ImageList se mostrará con su tamaño original, sin importar su tamaño.

Nota para la distribución El control ImageList forma parte de un grupo de controles ActiveX que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control ImageList en su aplicación debe agregar el archivo MSCOMCTL.OCX al proyecto. Cuando distribuya su aplicación, instale el archivo MSCOMCTL.OCX en el directorio System o System32 de Microsoft Windows del usuario. Para ver más información acerca de cómo agregar un control ActiveX a un proyecto, vea el Manual del programador.


ListView (Control)

El control ListView muestra elementos en una de cuatro vistas diferentes. Puede organizar los elementos en columnas con o sin encabezados, así como mostrar iconos y texto adjuntos.

Sintaxis

ListView

Comentarios

Con un control ListView puede organizar entradas de listas, llamadas objetos ListItem, en una de las siguientes vistas:

  • Iconos grandes (estándar)

  • Iconos pequeños

  • Lista

  • Informe

La propiedad View determina qué vista utiliza el control para mostrar los elementos de la lista. También puede controlar si las etiquetas asociadas a los elementos de la lista se ajustan a más de una línea mediante la propiedad LabelWrap. Además, puede organizar cómo se ordenan los elementos de la lista y cómo se muestran los elementos seleccionados.

El control ListView contiene los objetos ListItem y ColumnHeader. Un objeto ListItem define las distintas características de los elementos del control ListView, como:

  • Una breve descripción del elemento.

  • Iconos que pueden aparecer con el elemento, suministrados por un control ImageList.

  • Partes adicionales de texto, denominadas subelementos, asociadas a un objeto ListItem que puede ver en la vista Informe.

Puede mostrar los encabezados de columna en el control ListView mediante la propiedad HideColumnHeaders. Puede agregar los encabezados tanto en tiempo de diseño como en tiempo de ejecución. En tiempo de diseño, puede usar la ficha Encabezados de columna del cuadro de diálogo Página de propiedades del control ListView. En tiempo de ejecución, utilice el método Add para agregar un objeto ColumnHeader a la colección ColumnHeaders.

Nota para la distribución El control ListView forma parte de un grupo de controles ActiveX que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control ListView en la aplicación, deberá agregar el archivo MSCOMCTL.OCX al proyecto. Cuando distribuya la aplicación, instale el archivo MSCOMCTL.OCX en el directorio System o System32 de Microsoft Windows del usuario. Para obtener más información acerca de cómo agregar un control ActiveX a un proyecto de Visual Basic, vea el Manual del programador de Visual Basic.


ProgressBar (Control)

El control ProgressBar muestra la evolución de una operación prolongada llenando un rectángulo en bloques de izquierda a derecha.

Sintaxis

ProgressBar

Comentarios

  • El control ProgressBar muestra la evolución de una operación hacia su término.

Un control ProgressBar tiene un intervalo y una posición actual. El intervalo representa la duración completa de la operación. La posición actual representa el progreso de la aplicación para completar la operación. Las propiedades Max y Min establecen los límites del intervalo. La propiedad Value especifica la posición actual dentro del intervalo. Debido al uso de segmentos completos para llenar el control, la cantidad llenada sólo brinda una aproximación al valor actual de la propiedad Value. Basándose en el tamaño del control, la propiedad Value determina el momento de llenar el segmento siguiente.

Las propiedades Height y Width del control ProgressBar determinan el número y el tamaño de los segmentos que lo llenan. Cuantos más segmentos se usen, mayor será la precisión con que el control reflejará la evolución de la operación. Para incrementar el número de segmentos mostrados, reduzca el valor de la propiedad Height o incremente el de Width. El valor de la propiedad BorderStyle también afecta al número y al tamaño de los segmentos. Para ajustarse al borde, el tamaño de los segmentos se reduce.

Puede usar la propiedad Align con el control ProgressBar para situarlo automáticamente al principio o al final del formulario.

Sugerencia Para ajustar el tamaño del segmento para que el incremento del progreso se acerque a los valores del progreso real, haga que el control ProgressBar sea al menos 12 veces más ancho que alto.

En el ejemplo siguiente se muestra la forma de usar un control ProgressBar, llamado ProgressBar1, para mostrar la evolución de una operación prolongada en una matriz grande. Coloque un control CommandButton y un control ProgressBar en un formulario. La propiedad Align del código de ejemplo coloca el control ProgressBar en el borde inferior del formulario. El control ProgressBar no muestra ningún texto.

Private Sub Command1_Click()
   Dim Counter As Integer
   Dim Workarea(250) As String
   ProgressBar1.Min = LBound(Workarea)
   ProgressBar1.Max = UBound(Workarea)
   ProgressBar1.Visible = True

'Establece Min como valor de Value.
   ProgressBar1.Value = ProgressBar1.Min

'Bucle para recorrer la matriz.
   For Counter = LBound(Workarea) To UBound(Workarea)
      'Establece los valores iniciales de cada elemento de la matriz.
      Workarea(Counter) = "Valor inicial" & Counter
      ProgressBar1.Value = Counter
   Next Counter
   ProgressBar1.Visible = False
   ProgressBar1.Value = ProgressBar1.Min
End Sub

Private Sub Form_Load()
   ProgressBar1.Align = vbAlignBottom
   ProgressBar1.Visible = False
   Command1.Caption = "Inicializar matriz"
End Sub

Nota para la distribución El control ProgressBar forma parte de un grupo de controles ActiveX que podrá encontrar en el archivo MSCOMCTL.OCX. Para usar el control ProgressBar en una aplicación, debe agregar el archivo MSCOMCTL.OCX al proyecto. Al distribuir la aplicación, instale el archivo MSCOMCTL.OCX en el directorio System o System32 de Microsoft Windows. Si desea más información acerca de la forma de agregar un control ActiveX a un proyecto, vea el Manual del programador.


Slider (Control)

Un control Slider es una ventana que contiene un control deslizante y unas marcas opcionales. Puede mover el control deslizante si lo arrastra, hace clic con el mouse (ratón) en uno de sus lados o a través del teclado.

Sintaxis

Slider

Comentarios

Los controles Slider son útiles cuando desea seleccionar un valor discreto o un conjunto de valores consecutivos de un intervalo. Por ejemplo, puede usar un control Slider para establecer el tamaño de una imagen mostrada moviendo el control deslizante hasta una marca determinada, en lugar de escribir un número. Para seleccionar un intervalo de valores, establezca la propiedad SelectRange a True y programe el control de modo que seleccione un intervalo cuando esté presionada la tecla MAYÚS.

El control Slider puede orientarse horizontal o verticalmente.

Nota para la distribución Para usar el control Slider en una aplicación, debe agregar el archivo MSCOMCTL.OCX al proyecto. Al distribuir la aplicación, instale el archivo MSCOMCTL.OCX en el directorio System o System32 de Microsoft Windows del usuario. Para obtener más información acerca de cómo agregar un control ActiveX a un proyecto, vea el Manual del programador.


StatusBar (Control)

El control StatusBar proporciona una ventana, normalmente ubicada en la parte inferior de un formulario primario, a través de la cual una aplicación puede mostrar varios tipos de datos de estado. El control StatusBar puede dividirse hasta en un máximo de 16 objetos Panel contenidos en una colección Panels.

Sintaxis

StatusBar

Comentarios

Un control StatusBar está formado por objetos Panel, cada uno de los cuales puede contener texto o una imagen. Entre las propiedades para controlar la apariencia de cada panel se encuentran Width, Alignment (alineamiento del texto y las imágenes) y Bevel. Además, puede usar uno de los siete valores de la propiedad Style para mostrar automáticamente datos habituales, como la fecha, la hora y los estados del teclado.

En tiempo de diseño puede crear paneles, personalizar su apariencia y establecer sus valores en la ficha Panel de la Hoja de propiedades del control StatusBar. En tiempo de ejecución, los objetos Panel pueden volverse a configurar para reflejar distintas funciones, dependiendo del estado de la aplicación. Si desea más información acerca de las propiedades, eventos y métodos de los objetos Panel, vea los temas Panel (Objeto) y Panels (Colección).

Normalmente, el control StatusBar muestra información sobre un objeto visible en el formulario, sus componentes o información de contexto relacionada con su funcionamiento. El control StatusBar, junto con otros controles como Toolbar, proporciona las herramientas necesarias para crear una interfaz sencilla y rica en información.

Nota para la distribución El control StatusBar forma parte de los controles personalizados que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control StatusBar en su aplicación, debe agregar el archivo MSCOMCTL.OCX a su proyecto. Al distribuir su aplicación, instale el archivo MSCOMCTL.OCX en el directorio SYSTEM de Microsoft Windows del usuario. Para obtener más información acerca de cómo agregar un control personalizado a un proyecto, vea el Manual del programador.


TabStrip (Control)

Un control TabStrip es como los separadores de un cuaderno o las etiquetas de un grupo de carpetas de archivo. Mediante un control TabStrip puede definir varias páginas para la misma área de una ventana o cuadro de diálogo en su aplicación.

Sintaxis

TabStrip

Comentarios

El control consiste en uno o más objetos Tab de una colección Tabs. Tanto en tiempo de diseño como en tiempo de ejecución puede cambiar la apariencia del objeto Tab estableciendo propiedades. También puede agregar y quitar fichas utilizando la Página de propiedades del control TabStrip en tiempo de diseño o bien agregar y quitar objetos Tab en tiempo de ejecución mediante métodos.

La propiedad Style determina si el control TabStrip tiene la apariencia de un botón de comando (Buttons) o de un separador de carpeta (Tabs). En tiempo de diseño, cuando pone un control TabStrip en un formulario, tiene un separador de carpeta. Si elige el valor tabTabs para la propiedad Style, habrá un borde alrededor del área interna del control TabStrip. Aunque el valor tabButtons de la propiedad Style no muestra ningún borde alrededor del área interna, esa área existe.

Para determinar el tamaño total del control TabStrip, use sus controladores de arrastre o establezca las propiedades Top, Left, Height y Width. Basándose en el tamaño total del control en tiempo de ejecución, Visual Basic determina automáticamente el tamaño y la posición del área interna y devuelve las propiedades de coordenadas del cliente: ClientLeft, ClientTop, ClientHeight y ClientWidth. La propiedad MultiRow determina si el control puede tener más de una fila de fichas, la propiedad TabWidthStyle determina la apariencia de cada fila y, si la propiedad TabWidthStyle se establece a tabFixed, puede usar las propiedades TabFixedHeight y TabFixedWidth para establecer el mismo alto y ancho para todas las fichas del control TabStrip.

El control TabStrip no es un contenedor. Para contener las páginas reales y sus objetos, debe usar controles Frame u otro tipo de contenedores que coincidan con el tamaño del área interna compartida por todos los objetos Tab del control. Si usa una matriz de controles para el contenedor, puede asociar cada elemento de la matriz con un objeto Tab específico, como en el siguiente ejemplo:

Option Explicit
Private mintCurFrame As Integer' Marco activo visible

Private Sub Tabstrip1_Click()
   If Tabstrip1.SelectedItem.Index = mintCurFrame _
      Then Exit Sub ' No necesita cambiar el marco.
   ' Oculte el marco antiguo y muestre el nuevo.
   Frame1(Tabstrip1.SelectedItem.Index).Visible = True
   Frame1(mintCurFrame).Visible = False
   ' Establece mintCurFrame al nuevo valor.
   mintCurFrame = Tabstrip1.SelectedItem.Index
End Sub

Nota Cuando agrupe controles en un contenedor, es mejor usar mostrar u ocultar en vez de usar el método Zorder para traer al frente un marco de objeto. Por otra parte, los controles que tengan asociadas teclas de acceso (ALT + tecla de acceso) aún responderán a los comandos de teclado, aunque el contenedor no sea el control más alto. Observe también que debe separar los grupos de los controles OptionButton para ubicar cada grupo en su propio contenedor, o por el contrario todos los controles OptionButtons del formulario se comportarán como un gran grupo de controles OptionButtons.

Sugerencia Utilice un control Frame con su BorderStyle establecido a None como el contenedor, en lugar de un control PictureBox. Un control Frame produce menos sobrecarga que un control PictureBox.

La propiedad Tabs del control TabStrip es la colección de todos los objetos Tab. Cada objeto Tab tiene propiedades asociadas con su estado y apariencia actuales. Por ejemplo, puede asociar un control ImageList con el control TabStrip y después usar imágenes en fichas individuales. También puede asociar una información sobre herramientas con cada objeto Tab.

Nota para la distribución El control TabStrip forma parte de un grupo de controles personalizados que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control TabStrip en su aplicación, debe agregar el archivo MSCOMCTL.OCX al proyecto. Cuando distribuya su aplicación, instale el archivo MSCOMCTL.OCX en el directorio SYSTEM de Microsoft Windows del usuario. Para obtener más información acerca de cómo agregar un control personalizado a un proyecto, vea el Manual del programador.


Toolbar (Control)

Un control Toolbar contiene una colección de objetos Button utilizados para crear una barra de herramientas asociada a una aplicación.

Sintaxis

Toolbar

Comentarios

Normalmente, una barra de herramientas contiene botones que corresponden a elementos de menú de una aplicación, proporcionando una interfaz gráfica al usuario que le permite tener acceso a las funciones y comandos empleados con más frecuencia en esa aplicación.

El control Toolbar le permite crear barras de herramientas agregando objetos Button a una colección Buttons; cada objeto Button puede tener texto opcional o una imagen, proporcionados por un control ImageList asociado. Puede mostrar una imagen en un botón con la propiedad Image o mostrar texto con la propiedad Caption, o ambos, para cada objeto Button. En tiempo de diseño puede agregar objetos Button al control utilizando la Página de propiedades del control Toolbar. En tiempo de ejecución, puede agregar o quitar botones de la colección Buttons mediante los métodos Add y Remove.

Para programar el control Toolbar, agregue código al evento ButtonClick para que responda al botón seleccionado. También puede determinar el comportamiento y la apariencia de cada objeto Button mediante la propiedad Style. Por ejemplo, si a cuatro botones se les asigna el estilo ButtonGroup, sólo se podrá presionar uno de ellos y al menos uno estará siempre presionado.

Puede crear espacio para otros controles en la barra de herramientas si asigna a un objeto Button el estilo Placeholder y después coloca un control sobre el marcador de posición. Por ejemplo, para colocar en una barra de herramientas un cuadro combinado desplegable en tiempo de diseño, agregue un objeto Button con estilo PlaceHolder y asígnele el ancho de un control ComboBox. Después, coloque un ComboBox en el marcador de posición.

Al hacer doble clic en una barra de herramientas en tiempo de ejecución se invoca el cuadro de diálogo Personalizar barra de herramientas, que permite al usuario ocultar, mostrar o reorganizar los botones de la barra de herramientas. Para activar o desactivar el cuadro de diálogo, use la propiedad AllowCustomize. Puede invocar también el cuadro de diálogo Personalizar barra de herramientas mediante el método Customize. Si desea guardar y restaurar el estado de una barra de herramientas, o permitir al usuario hacerlo, puede elegir entre dos métodos: SaveToolbar y RestoreToolbar. El evento Change, que se genera cuando se altera una barra de herramientas, se usa normalmente para invocar el método SaveToolbar.

Nota El cuadro de diálogo Personalizar también incluye un botón Ayuda. Utilice las propiedades HelpFile y HelpContextID para determinar qué archivo de Ayuda (si lo hay) se mostró la última vez que el usuario hizo clic en el botón Ayuda.

La facilidad de uso se mejora considerablemente programando descripciones ToolTipText de cada objeto Button. Para mostrar información sobre herramientas, la propiedad ShowTips debe establecerse a True. Cuando el usuario invoca el cuadro de diálogo Personalizar barra de herramientas, al hacer clic en un botón se muestra una descripción del botón en el cuadro de diálogo; esta descripción puede programarse mediante la propiedad Description.

Nota para la distribución El control Toolbar forma parte de un grupo de controles ActiveX que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control Toolbar en su aplicación debe agregar el archivo MSCOMCTL.OCX al proyecto. Cuando distribuya su aplicación, instale el archivo MSCOMCTL.OCX en la carpeta System o System32 (en plataformas con Windows NT) de Microsoft Windows del usuario. Para obtener más información acerca de cómo agregar un control ActiveX a un proyecto, vea "Cargar controles ActiveX" en la Guía de herramientas componentes.


Ejemplo del control Toolbar

Este ejemplo agrega varios objetos Button a un control Toolbar mediante el método Add y asigna imágenes proporcionadas por el control ImageList. El comportamiento de cada botón está determinado por la propiedad Style. El código crea botones que pueden usarse para abrir y guardar archivos e incluye un control ComboBox que se utiliza para cambiar el color de fondo del formulario. Para probar el ejemplo, coloque un control Toolbar, ImageList y un control ComboBox en un formulario y pegue el código en la sección Declaraciones del formulario. Asegúrese de que ha insertado el ComboBox directamente en el control Toolbar. Ejecute el ejemplo, haga clic en los distintos botones y seleccione algo del cuadro combinado.

Private Sub Form_Load()
   ' Crea una variable de objeto para ImageList.
   Dim imgX As ListImage

   ' Carga imágenes en el control ImageList.
   Set imgX = ImageList1.ListImages. _
   Add(, "abrir", LoadPicture("Graphics\bitmaps\tlbr_w95\open.bmp"))
   Set imgX = ImageList1.ListImages. _
   Add(, "guardar", LoadPicture("Graphics\bitmaps\tlbr_w95\save.bmp"))
   Toolbar1.ImageList = ImageList1

   ' Crea una variable de objeto para Toolbar.
   Dim btnX As Button
   ' Agrega objetos Button a la colección Buttons
    ' mediante el método Add.
   ' Después de crear cada botón se establecen las
   ' propiedades Description y ToolTipText.
   Toolbar1.Buttons.Add , , , tbrSeparator
   Set btnX = Toolbar1.Buttons.Add(, "abrir", , tbrDefault, "abrir")
   btnX.ToolTipText = "Abrir archivo"
   btnX.Description = btnX.ToolTipText
   Set btnX = Toolbar1.Buttons.Add(, "guardar", , tbrDefault, "guardar")
   btnX.ToolTipText = "Guardar archivo"
   btnX.Description = btnX.ToolTipText
   Set btnX = Toolbar1.Buttons.Add(, , , tbrSeparator)

   ' El siguiente botón tiene el estilo Placeholder.
    ' Se colocará un control ComboBox en la
    ' parte superior de este botón.
   Set btnX = Toolbar1.Buttons.Add(, "combo1", , tbrPlaceholder)
   btnX.Width = 1500 ' Ancho del marcador de posición para dar cabida a un cuadro combinado.

   Show ' Muestra el formulario para continuar configurando el ComboBox.

   ' Configura el control ComboBox para colocarlo en
    ' la misma posición que el objeto Button con el
   ' estilo Placeholder (key = "combo1").
   With Combo1
      .Width = Toolbar1.Buttons("combo1").Width
      .Top = Toolbar1.Buttons("combo1").Top
      .Left = Toolbar1.Buttons("combo1").Left
      .AddItem "Negro" ' Agrega colores al texto.
      .AddItem "Azul"
      .AddItem "Rojo"
      .ListIndex = 0
   End With

End Sub

Private Sub Form_Resize()
   ' Configura el control ComboBox.
   With Combo1
      .Width = Toolbar1.Buttons("combo1").Width
      .Top = Toolbar1.Buttons("combo1").Top
      .Left = Toolbar1.Buttons("combo1").Left
   End With

End Sub
Private Sub toolbar1_ButtonClick(ByVal Button As Button)
   ' Utiliza la propiedad Key con la instrucción
   ' SelectCase para especificar una acción.
   Select Case Button.Key
   Case Is = "abrir"         ' Abre archivo.
      MsgBox "Agregue código para abrir el archivo"
   Case Is = "guardar"           ' Guarda archivo.
      MsgBox "Agregue código para guardar el código"
   End Select
End Sub

Private Sub Combo1_Click()
   ' Cambia el color del fondo utilizando el ComboBox.
   Select Case Combo1.ListIndex
   Case 0
      Form1.BackColor = vbBlack
   Case 1
      Form1.BackColor = vbBlue
   Case 2
      Form1.BackColor = vbRed
   End Select
End Sub


TreeView (Control)

Un control TreeView muestra una lista jerárquica de objetos Node, cada uno de los cuales consta de una etiqueta y un mapa de bits opcional. Los controles TreeView se utilizan habitualmente para mostrar los encabezados de un documento, las entradas de un índice, los archivos y directorios de un disco o cualquier otro tipo de información que pueda ser útil ver en una estructura jerárquica.

Sintaxis

Treeview

Comentarios

Una vez creado un control TreeView, puede agregar, quitar, organizar y manipular de diversas formas los objetos Node si establece propiedades e invoca métodos. Puede expandir y contraer mediante programa los objetos Node para mostrar u ocultar todos los nodos secundarios. Existen tres eventos, Collapse, Expand y NodeClick, que también ofrecen funcionalidad mediante programa.

Puede desplazarse por un árbol en el código si recupera una referencia a los objetos Node mediante las propiedades Root, Parent, Child, FirstSibling, Next, Previous y LastSibling. Los usuarios también pueden desplazarse por un árbol mediante el teclado. Las teclas FLECHA ARRIBA y FLECHA ABAJO recorren hacia abajo uno a uno todos los objetos Node expandidos. Los objetos Node se seleccionan de izquierda a derecha y de arriba abajo. En la parte inferior del árbol, la selección vuelve a la parte superior y la ventana se desplaza si es necesario. Las teclas FLECHA DERECHA y FLECHA IZQUIERDA también permiten desplazarse por los objetos Node expandidos, pero si presiona la tecla FLECHA DERECHA cuando hay seleccionado un nodo no expandido, éste se expandirá y una segunda pulsación desplazará la selección al siguiente objeto Node. Por el contrario, al presionar FLECHA IZQUIERDA cuando hay seleccionado un objeto Node expandido, éste se contrae Si el usuario presiona una tecla ANSI, el enfoque pasará al objeto Node más próximo que comience con esa letra. Si se presiona repetidamente la misma tecla, la selección recorrerá uno a uno todos los nodos expandidos que comiencen por esa letra.

Existen diversos estilos que modifican la apariencia del control. Los objetos Node pueden aparecer con una de ocho combinaciones posibles de texto, mapas de bits, líneas y signos más y menos.

El control TreeView utiliza el control ImageList, especificado por la propiedad ImageList, para almacenar los mapas de bits e iconos mostrados en los objetos Node. Un control TreeView sólo puede usar un control ImageList cada vez. Esto significa que todos los elementos del control TreeView tendrán una imagen del mismo tamaño junto a ellos al establecer la propiedad Style del control TreeView a un estilo que muestre imágenes.

Nota para la distribución El control TreeView forma parte de un grupo de controles ActiveX que se encuentran en el archivo MSCOMCTL.OCX. Para usar el control TreeView en su aplicación, debe agregar el archivo MSCOMCTL.OCX al proyecto. Cuando distribuya su aplicación, instale el archivo MSCOMCTL.OCX en el directorio System o System32 de Microsoft Windows del usuario.


No se encuentra el tema

No se halló el tema correspondiente. A continuación enumeramos algunas posibles razones y sus soluciones:

  • El archivo (.chm) que contiene el tema de destino no se encuentra en la ubicación esperada.

    Solución: vuelva a ejecutar la instalación de la Biblioteca MSDN.

  • El archivo (.chm) que contiene el tema actual o el de destino no está actualizado y el vínculo ya no es válido.

    Solución: instale la última versión de la Biblioteca MSDN.

  • El CD de la Biblioteca MSDN no está en la unidad de CD-ROM.

    Solución: inserte el CD en la unidad.


Errores interceptables de los Windows Common Controls (ComCtlLib)

En las tablas siguientes se relacionan los errores interceptables y sus constantes para los controles comunes de Windows que se encuentran en los archivos ComCtl32.OCX y ComCt232.OCX.

Los errores siguientes corresponden a los controles comunes de Windows del archivo ComCtl32.OCX. Estos controles son TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListView, ImageList y Slider.

Constante | Valor | Descripción
ccInvalidProcedureCall | 5 | Llamada a procedimiento no válida.
ccOutOfMemory | 7 | Memoria insuficiente. La operación no pudo asignar suficiente memoria.
ccTypeMismatch | 13 | El tipo no coincide.
 |  | Es posible que uno de los argumentos no se haya convertido al tipo de datos correcto.
ccObjectVariableNotSet | 91 | Variable de tipo Object o variable de bloque With no establecida.
ccInvalidPropertyValue | 380 | El valor de la propiedad no es válido.
 |  | Se ha asignado un valor a una propiedad que está fuera del intervalo de valores admitido.
ccSetNotSupportedAtRuntime | 382 | No se puede establecer la propiedad en tiempo de ejecución.
ccSetNotSupported | 383 | La propiedad es de sólo lectura.
ccSetNotPermitted | 387 | No se puede establecer la propiedad en este control.
ccGetNotSupported | 394 | La propiedad es de sólo escritura.
ccInvalidObjectUse | 425 | Uso no válido del objeto.
ccWrongClipBoardFormat | 461 | El formato especificado no coincide con el formato de los datos.
ccInvalidPicture | 481 | Imagen no válida.
ccDataObjectLocked | 672 | La lista de formatos de DataObject no se puede borrar o expandir fuera del evento OLEStartDrag.
ccExpectedAnArgument | 673 | Se esperaba al menos un argumento.
ccRecursiveOleDrag | 674 | Llamada recursiva no válida de arrastrar y colocar OLE.
ccFormatNotByteArray | 675 | Los formatos de arrastrar y colocar OLE no intrínsecos que se usan con SetData necesitan datos en una matriz de Byte. GetData puede devolver más bytes que los proporcionados a SetData.
ccDataNotSetForFormat | 676 | No se han suministrado a DataObject los datos solicitados durante el evento OLESetData.
ccInvalidSafeModeProcCall | 680 | Llamada no válida a un procedimiento en modo seguro.
ccIndexOutOfBounds | 35600 | El índice está fuera de los límites.
ccElemNotFound | 35601 | No se encontró el elemento.
ccNonUniqueKey | 35602 | La clave no es única en la colección.
ccInvalidKey | 35603 | La clave no es válida.
ccCol1MustBeLeftAligned | 35604 | Cuando la propiedad View del control ListView se establece a 3 (Informe), la columna situada más a la izquierda (la columna 1) sólo puede alinearse a la izquierda. Si se intenta establecer otro alineamiento se producirá este error.
ccElemNotPartOfCollection | 35605 | Este control del elemento se ha eliminado.
ccCollectionChangedDuringEnum | 35606 | La colección del control se ha modificado.
ccMissingRequiredArg | 35607 | Falta el argumento requerido.
ccBadObjectReference | 35610 | El objeto no es válido.
ccReadOnlyIfHasImages | 35611 | La propiedad es de sólo lectura si la lista de imágenes contiene imágenes.
ccImageListMustBeInitialized | 35613 | ImageList debe inicializarse antes de poder usarla.
ccWouldIntroduceCycle | 35614 | Esto produciría un ciclo.
ccNotSameSize | 35615 | Todas las imágenes de la lista deben ser del mismo tamaño.
ccMaxPanelsExceeded | 35616 | Se ha excedido el número máximo de paneles.
ccImageListLocked | 35617 | ImageList no se puede modificar mientras tenga otro control enlazado a él.
ccMaxButtonsExceeded | 35619 | Se ha excedido el número máximo de botones.
ccCircularReference | 35700 | No está permitida una referencia circular entre objetos.


ButtonMenus (Colección)

Una colección de objetos ButtonMenu.

Sintaxis

ButtonMenus

Comentarios

Utilice la propiedad ButtonMenus para devolver una referencia a la colección.


Buttons (Colección)

Una colección Buttons es una colección de objetos Button de un control Toolbar.

Sintaxis

toolbar.Buttons(índice)

toolbar.Buttons.Item(índice)

La sintaxis de la colección Buttons consta de las siguientes partes:

Parte | Descripción
toolbar | Una expresión de objeto que da como resultado un control Toolbar.
índice | Un valor de tipo entero o de cadena que identifica de manera única el objeto de la colección. El valor entero es el valor de la propiedad Index; el valor de cadena es el valor de la propiedad Key.

Comentarios

La colección Buttons es una colección basada en 1, lo que significa que su propiedad Index comienza con el número 1 (en lugar de 0 como en las colecciones basadas en 0).

Puede tener acceso a cada elemento de la colección por su índice o por una clave única. Por ejemplo, para obtener una referencia al tercer objeto Button de una colección, use la siguiente sintaxis:

Dim btnX As Button
   ' Hace referencia por el número del índice.
Set btnX = Toolbar1.Buttons(3)
   ' O por una clave única.
Set btnX = Toolbar1.Buttons("tercero") ' Asume que la clave es "tercero".
   ' O utiliza el método Item.
Set btnX = Toolbar1.Buttons.Item(3)


ComboItems (Colección)

La colección ComboItems contiene todos los objetos ComboItem presentes en un control ImageCombo.

Sintaxis

objeto.ComboItems(Index)

La sintaxis de la colección ComboItems consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuya evaluación da como resultado un control ImageCombo.
Index | Un entero o una cadena que identifica de forma exclusiva un miembro de una colección de objetos. Un entero es el valor de la propiedad Index; una cadena es el valor de la propiedad Key.

Comentarios

La colección ComboItems es una colección de dimensión 1 de objetos ComboItem.

El orden de los objetos ComboItem dentro de la colección ComboItems es el mismo que el de su posición visible dentro de la parte de lista del control. La propiedad Index de un objeto ComboItem indica su posición dentro de la colección.


ListSubItems (Colección)

Una colección de objetos ListSubItem.

Sintaxis

ListSubItems

Comentarios

Como en el caso de los objetos ListItem, sólo es posible crear objetos ListSubItem en tiempo de ejecución mediante el método Add. Utilice la propiedad ListSubItems para devolver una referencia a la colección.


Panels (Colección)

Una colección Panels contiene un conjunto de objetos Panel.

Sintaxis

statusbar.Panels(índice)

La sintaxis de la colección Panels consta de las siguientes partes.

Parte | Descripción
statusbar | Una expresión de objeto que da como resultado un control StatusBar.
índice | Un entero o una cadena que identifica de forma única el objeto en la colección. El entero será el valor de la propiedad Index del objeto Panel deseado; la cadena es el valor de la propiedad Key del objeto Panel deseado.

La colección Panels es una matriz de objetos Panel que empieza la numeración por 1. De forma predeterminada, los controles StatusBar tienen un objeto Panel. Por ello, si desea tener tres paneles, sólo deberá agregar dos objetos a la colección Panels.

La propiedad Panels devuelve una referencia a una colección Panels.

Para agregar un objeto Panel a una colección, utilice el método Add para objetos Panel en tiempo de ejecución o la ficha de Panel en la Página de propiedades del control StatusBar en tiempo de diseño.

El acceso a cada elemento de la colección puede hacerse por su propiedad Index o con la propiedad Key. Por ejemplo, para obtener una referencia al tercer objeto Panel de una colección, puede usar la sintaxis siguiente:

Dim pnlX As Panel
Set pnlX = StatusBar1.Panels(3)   ' Referencia por número de índice.
   ' o bien
Set pnlX = StatusBar1.Panels("Third")   ' Referencia por clave única.
   ' o bien
Set pnlX = StatusBar1.Panels.Item(3)   ' Uso del método Item.


Tabs (Colección)

Una colección Tabs contiene un conjunto de objetos Tab.

Sintaxis

tabstrip.Tabs(índice)

tabstrip.Tabs.Item(índice)

La sintaxis de la colección Tabs consta de las siguientes partes:

Parte | Descripción
tabstrip | Una expresión de objeto que da como resultado un control TabStrip.
índice | Un entero o una cadena que identifica de forma única a un miembro de una colección de objetos. El entero es el valor de la propiedad Index del objeto Tab deseado, mientras que la cadena es el valor de la propiedad Key del objeto Tab deseado.

En tiempo de diseño, use los botones Insertar ficha y Quitar ficha de la ficha Fichas de la Página de propiedades del control TabStrip para agregar y quitar objetos Tab de la colección Tabs.

La colección Tabs utiliza la propiedad Count para devolver el número de fichas de la colección. Para manipular los objetos Tab de la colección Tabs, utilice estos métodos en tiempo de ejecución:

  • Add: agrega objetos Tab al control TabStrip.

  • Item: recupera el objeto Tab identificado por su Key o Index de la colección.

  • Clear: quita todos los objetos Tab de la colección.

  • Remove: quita el objeto Tab identificado mediante su Key o Index de la colección.


Constantes del control ImageList

Constante | Valor | Descripción
imlNormal | 0 | La imagen se dibuja sin ningún cambio.
imlTransparent | 1 | La imagen se dibuja de forma transparente.
imlSelected | 2 | La imagen se dibuja seleccionada.
imlFocus | 3 | La imagen se dibuja con enfoque.


Constantes del control ListView

Constantes del control ListView

Constante | Valor | Descripción
lvwIcon | 0 | (Predeterminado) Iconos. Cada objeto ListItem se representa por un icono de tamaño completo (estándar) y una etiqueta de texto.
lvwSmallIcon | 1 | Iconos pequeños. Cada objeto ListItem se representa por un icono pequeño y una etiqueta de texto que aparece a la derecha del icono. Los elementos aparecen horizontalmente.
LvwList | 2 | Lista. Cada ListItem se representa por un icono pequeño y una etiqueta de texto que aparece a la derecha del icono. Cada ListItem aparece verticalmente y en su propia línea con la información dispuesta en columnas.
lvwReport | 3 | Informe. Cada objeto ListItem se muestra con su icono pequeño y etiquetas de texto. Puede proporcionar información adicional sobre cada objeto ListItem. Los iconos, las etiquetas de texto y la información aparecen en columnas. La columna situada en el extremo izquierdo contiene el icono pequeño, seguido de la etiqueta de texto. Otras columnas adicionales muestran el texto de cada subelemento del elemento.

Constantes de ListArrange

Constante | Valor | Descripción
lvwNone | 0 | (Predeterminado) Ninguno.
lvwAutoLeft | 1 | Izquierda. Los objetos ListItem se alinean a lo largo de la parte izquierda del control.
lvwAutoTop | 2 | Superior. Los objetos ListItem se alinean a lo largo de la parte superior del control.

Constante de ListColumnAlignment

Constante | Valor | Descripción
lvwColumnLeft | 0 | (Predeterminado) Izquierda. El texto está alineado a la izquierda.
lvwColumnRight | 1 | Derecha. El texto está alineado a la derecha.
lvwColumnCenter | 2 | Centro. El texto está centrado.

Constantes de ListLabelEdit

Constante | Valor | Descripción
lvwAutomatic | 0 | (Predeterminado) Automático. El evento BeforeLabelEdit se genera cuando el usuario hace clic en la etiqueta de un nodo seleccionado.
lvwManual | 1 | Manual. El evento BeforeLabelEdit sólo se genera cuando se invoca el método StartLabelEdit.

Constantes de ListSortOrder

Constante | Valor | Descripción
lvwAscending | 0 | (Predeterminado) Orden ascendente. Ordena desde el principio del alfabeto (A-Z), la primera fecha o el número más bajo.
lvwDescending | 1 | Orden descendente. Ordena desde el final del alfabeto (Z-A), la última fecha o el número más alto.

Constantes de ListFindItemWhere

Constante | Valor | Descripción
lvwText | 0 | (Predeterminado) Texto. Hace coincidir la cadena con la propiedad Text de un objeto ListItem.
lvwSubItem | 1 | Subelemento. Hace coincidir la cadena con cualquier cadena de la propiedad SubItems de un objeto ListItem.
lvwTag | 2 | Etiqueta. Hace coincidir la cadena con la propiedad Tag de cualquier objeto ListItem.

Constantes de ListFindItemHow

Constante | Valor | Descripción
lvwWholeWord | 0 | (Predeterminado) Palabra completa. Establece la búsqueda de modo que se produzca una coincidencia si la propiedad Text del elemento comienza por la palabra completa que se busca. Se pasa por alto si el criterio no es texto.
lvwPartial | 1 | Parcial. Establece la búsqueda de modo que se produzca una coincidencia si la propiedad Text del elemento comienza por la cadena que se busca. Se pasa por alto si el criterio no es texto.

Constantes de TextBackground

Constante | Valor | Descripción
lvwTransparent | 0 | el fondo del texto es transparente.
lvwOpaque | 1 | El texto del fondo es del mismo color que la propiedad BackColor.


Constantes de Slider

Constantes de Orientation

Constante | Valor | Descripción
sldHorizontal | 0 | Orientación horizontal.
sldVertical | 1 | Orientación vertical.

Constantes de Tickstyle

Constante | Valor | Descripción
sldBottomRight | 0 | Abajo y derecha. Las marcas se colocan a lo largo del borde inferior del control Slider si éste está orientado horizontalmente o a lo largo del borde derecho si la orientación es vertical.
SldTopLeft | 1 | Arriba e izquierda. Las marcas se colocan a lo largo del borde superior del control Slider si éste está orientado horizontalmente o a lo largo del borde izquierdo si la orientación es vertical.
SldBoth | 2 | Ambos. Las marcas se colocan a ambos lados del control Slider.
sldNoTicks | 3 | Ninguno. No se muestran marcas en el control Slider.


Constantes del control StatusBar

Constantes de Style (StatusBar)

Constante | Valor | Descripción
sbrNormal | 0 | Normal. El control StatusBar se divide en paneles.
sbrSimple | 1 | Simple. El control StatusBar sólo tiene un panel grande y texto simple.

Constantes de Alignment (Panel)

Constante | Valor | Descripción
sbrLeft | 0 | Texto a la izquierda.
sbrCenter | 1 | Texto centrado.
sbrRight | 2 | Texto a la derecha.

Constantes de AutoSize (Panel)

Constante | Valor | Descripción
sbrNoAutoSize | 0 | Sin ajuste automático de tamaño.
sbrSpring | 1 | El espacio adicional se divide entre los paneles.
sbrContents | 2 | Se ajusta al contenido.

Constantes de Bevel (Panel)

Constante | Valor | Descripción
sbrNoBevel | 0 | Sin bisel.
sbrInset | 1 | Bisel hundido hacia adentro.
sbrRaised | 2 | Bisel hacia fuera en relieve.

Constantes de Style (Panel)

Constante | Valor | Descripción
sbrText | 0 | Muestra texto y mapa de bits.
sbrCaps | 1 | Muestra el estado de BLOQ MAYÚS.
sbrNum | 2 | Muestre el estado de BLOQ NÚM.
sbrIns | 3 | Muestra el estado de Insert.
sbrScrl | 4 | Muestra el estado de BLOQ DESPL.
sbrTime | 5 | Muestra la hora con el formato del sistema.
sbrDate | 6 | Muestra la fecha con el formato del sistema.
sbrKana | 7 | Kana. Muestra las letras KANA en negrita cuando BLOQ DESPL está activado y en modo normal cuando está desactivado.


Constantes del control TabStrip

Constantes de TabStyle

Constante | Valor | Descripción
tabTabs | 0 | Las fichas aparecen como separadores de cuaderno y el área interna tiene un borde tridimensional alrededor.
tabButtons | 1 | Las fichas aparecen como botones de comando y el área interna no tiene ningún borde alrededor.

Constantes de TabWidthStyle

Constante | Valor | Descripción
tabJustified | 0 | Cada ficha es lo bastante ancha como para dar cabida a su contenido y el ancho de cada ficha se incrementa, si es necesario, de forma que cada fila iguala al ancho del control. Si sólo hay una fila de fichas, este estilo no tiene ningún efecto.
tabNonJustified | 1 | Cada ficha es lo bastante ancha como para dar cabida a su contenido. Las filas no se justifican, por lo que las distintas filas terminan de manera irregular.
tabFixed | 2 | Los valores del alto y ancho de todas las fichas son idénticos, y se establecen mediante las propiedades TabFixedHeight y TabFixedWidth.


Constantes del control Toolbar

Constantes de Style

Constante | Valor | Descripción
tbrDefault | 0 | El botón es un botón de comando normal.
tbrCheck | 1 | El botón es una casilla de verificación.
tbrButtonGroup | 2 | El botón se mantiene presionado hasta que se presiona otro botón del grupo. Solamente un botón del grupo está presionado en un momento determinado.
tbrSeparator | 3 | El botón funciona como separador con una anchura fija de 8 pixeles.
tbrPlaceholder | 4 | El botón es como un separador en cuanto a apariencia y funcionalidad, pero tiene un ancho variable.

Constantes de Value

Constante | Valor | Descripción
tbrUnpressed | 0 | El botón no está presionado o activado en ese momento.
tbrPressed | 1 | El botón está presionado o activado en ese momento.


Constantes del control TreeView

Constantes de TreeLine

Constante | Valor | Descripción
tvwTreeLines | 0 | Se muestran las líneas del árbol
tvwRootLines | 1 | Se muestran las líneas de raíz con las líneas del árbol

Constantes de TreeRelationship

Constante | Valor | Descripción
tvwFirst | 0 | Primer objeto del mismo nivel
tvwLast | 1 | Último objeto del mismo nivel
tvwNext | 2 | Siguiente objeto del mismo nivel
tvwPrevious | 3 | Anterior objeto del mismo nivel
tvwChild | 4 | Secundario

Constantes de TreeStyle

Constante | Valor | Descripción
tvwTextOnly | 0 | Sólo texto
tvwPictureText | 1 | Imagen y texto
tvwPlusMinusText | 2 | Más/menos y texto
tvwPlusPictureText | 3 | Más/menos, imagen y texto
tvwTreelinesText | 4 | Líneas de árbol y texto
tvwTreelinesPictureText | 5 | Líneas de árbol, imagen y texto
tvwTreelinesPlusMinusText | 6 | Líneas de árbol, más/menos y texto
tvwTreelinesPlusMinusPictureText | 7 | Líneas de árbol, más/menos, imagen y texto

Constantes de LabelEdit

Constante | Valor | Descripción
tvwAutomatic | 0 | La edición de etiquetas es automática
tvwManual | 1 | La edición de etiquetas se debe invocar


AfterLabelEdit (Evento, controles ListView y TreeView)

Se produce cuando un usuario termina de modificar la etiqueta del objeto Node o ListItem seleccionado actualmente.

Sintaxis

Private Sub objeto_AfterLabelEdit(cancelar As Integer, nuevaCadena As String)

La sintaxis del evento AfterLabelEdit consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
cancelar | Un entero que determina si la operación de edición de etiqueta debe cancelarse. Cualquier entero distinto de cero cancelará la operación. También se admiten valores booleanos.
nuevaCadena | La cadena que ha escrito el usuario o Null si el usuario ha cancelado la operación.

Comentarios

Los eventos AfterLabelEdit y BeforeLabelEdit sólo se generan si el valor de la propiedad LabelEdit es 0 (Automática) o si se invoca el método StartLabelEdit.

El evento AfterLabelEdit se genera después de que el usuario termina la operación de edición, lo que ocurre cuando hace clic en otro objeto Node o ListItem o cuando presiona la tecla ENTRAR.

Para cancelar una operación de edición de etiqueta, establezca True o cualquier valor distinto de cero en cancelar. Al cancelar la operación, se restaurará la etiqueta existente anteriormente.

El argumento nuevaCadena puede usarse para comprobar una condición antes de cancelar una operación. Por ejemplo, el código siguiente cancela la operación si nuevaCadena es un número:

Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
   If IsNumeric(NewString) Then
      MsgBox "No se permiten números"
      Cancel = True
   End If
End Sub


Ejemplo del evento AfterLabelEdit (Controles ListView y TreeView)

En este ejemplo se agregan tres objetos Node a un control TreeView. Al intentar modificar la etiqueta de un objeto Node, se comprueba el índice del objeto. Si es 1, la operación se cancela. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, haga clic dos veces en la etiqueta del objeto Node superior para modificarla, escriba texto y presione ENTRAR.

Private Sub Form_Load()
   TreeView1.Style = tvwTreelinesText ' Líneas y texto.
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,,"Primario")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Secundario1")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Secundario2")
   nodX.EnsureVisible   ' Se asegura de que todos los nodos sean visibles.
End Sub

Private Sub TreeView1_AfterLabelEdit _
(Cancel As Integer, NewString As String)
   ' Si el índice del nodo actual es 1, se cancela la edición.
   If TreeView1.SelectedItem.Index = 1 Then
      Cancel = True
      MsgBox "No se puede reemplazar " & TreeView1.SelectedItem.Text & _
      " por " & NewString
   End If
End Sub

Este ejemplo agrega tres objetos ListItem a un control ListView. Al intentar modificar la etiqueta de un objeto ListItem, se comprueba el índice del objeto. Si es 1, la operación se cancela. Para probar el ejemplo, agregue un control ListView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, haga clic dos veces en la etiqueta de cualquier objeto ListItem para modificarla, escriba texto y presione ENTRAR.

Private Sub Form_Load()
   Dim itmX As ListItem
   Set itmX = ListView1.ListItems.Add(,,"Elemento 1")
   Set itmX = ListView1.ListItems.Add(,,"Elemento 2")
   Set itmX = ListView1.ListItems.Add(,,"Elemento 3")
End Sub

Private Sub ListView1_AfterLabelEdit _
(Cancel As Integer, NewString As String)
   ' Si el índice del objeto ListItem actual es 1, se cancela la edición.
   If ListView1.SelectedItem.Index = 1 Then
      Cancel = True
      MsgBox "No se puede reemplazar " & ListView1.SelectedItem.Text & _
      " por " & NewString
   End If
End Sub


BeforeClick (Evento)

Se genera cuando se hace clic en un objeto Tab de un control TabStrip o cuando el valor Selected de un objeto Tab ha cambiado.

Sintaxis

Private Sub objeto_BeforeClick(Cancel As Integer)

La sintaxis del evento BeforeClick consta de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un control TabStrip.
Cancel | Se evalúa como un entero con valores de 0 (False) y -1 (True). El valor inicial es 0.

Comentarios

Use el evento BeforeClick para validar la información del objeto Tab antiguo antes de generar realmente un evento Click que seleccione el nuevo objeto Tab. Establecer el argumento cancel a True le permite detener un cambio a la nueva selección.

Nota Establecer el argumento cancel a True evita que el enfoque cambie a otra ficha pero no detendrá el evento Click.

Nota Si usa las funciones MsgBox o InputBox durante el procedimiento de evento BeforeClick, el control TabStrip no recibirá un evento Click, cualquiera que sea el valor del argumento cancel.


Ejemplo del evento BeforeClick

Este ejemplo usa el evento BeforeClick para demostrar cómo evitar que un usuario cambie a otra ficha. Esto es útil cuando desea comprobar información en la ficha actual antes de mostrar la ficha recién seleccionada.

Para probar este ejemplo, ponga un control TabStrip y una matriz de controles Frame de dos elementos en el formulario (establezca la propiedad BorderStyle a None). En el primer control Frame, agregue un control CheckBox y en el segundo, agregue un TextBox. Pegue el siguiente código en el evento Load del objeto Form y ejecute el programa. Haga clic en la ficha titulada Texto después de activar o desactivar el CheckBox en la ficha titulada Casilla.

Private Sub Form_Load()
Dim i As Integer
Dim Tabx As Object
' Establece el título de la primera ficha como "Casilla"
TabStrip1.Tabs(1).Caption = "Casilla"
' Agrega una segunda ficha con "Texto" como título.
Set Tabx = TabStrip1.Tabs.Add(2, , "Texto")
' Etiqueta la casilla de verificación.
Check1.Caption = "Cancelar cambio de ficha"
   ' Alinea los marcos con el área interna
   ' del control Tabstrip.
   For i = 0 To 1
      Frame1(i).Left = TabStrip1.ClientLeft
      Frame1(i).Top = TabStrip1.ClientTop
      Frame1(i).Height = TabStrip1.ClientHeight
      Frame1(i).Width = TabStrip1.ClientWidth
   Next
   ' Pone arriba el contenedor de marco
   ' de la primera ficha.
   Frame1(0).ZOrder 0
End Sub

' El evento BeforeClick comprueba el valor de la casilla
' de verificación para determinar si se continúa con el
' evento Click.
Private Sub TabStrip1_BeforeClick(Cancel As Integer)
   If TabStrip1.Tabs(1).Selected Then
      If Check1.Value = 1 Then Cancel = True
   End If
End Sub

Private Sub TabStrip1_Click()
   Frame1(TabStrip1.SelectedItem.Index-1).ZOrder 0
End Sub


BeforeLabelEdit (Evento, controles ListView y TreeView)

Se produce cuando el usuario intenta modificar la etiqueta del objeto ListItem o Node seleccionado actualmente.

Sintaxis

Private Sub objeto_BeforeLabelEdit(cancelar As Integer)

La sintaxis del evento BeforeLabelEdit consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
cancelar | Un entero que determina si la operación de edición de etiqueta debe cancelarse. Cualquier entero distinto de cero cancelará la operación. El valor predeterminado es 0.

Comentarios

Los eventos AfterLabelEdit y BeforeLabelEdit sólo se generan si el valor de la propiedad LabelEdit es 0 (Automática) o si se invoca el método StartLabelEdit.

El evento BeforeLabelEdit se produce después del evento Click estándar.

Para comenzar a modificar una etiqueta, el usuario debe hacer clic primero en el objeto para seleccionarlo y hacer clic una segunda vez para iniciar la operación. El evento BeforeLabelEdit se produce después del segundo clic.

Para determinar a qué objeto pertenece la etiqueta que se va a modificar, utilice la propiedad SelectedItem. En el ejemplo siguiente se comprueba el índice de un objeto Node antes de permitir su edición. Si el índice es 1, se cancela la operación.

Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
   If TreeView1.SelectedItem.Index = 1 Then
      Cancel = True   ' Se cancela la operación
   End If
End Sub


Ejemplo del evento BeforeLabelEdit (Controles ListView y TreeView)

En este ejemplo se agregan varios objetos Node a un control TreeView. Al intentar modificar una etiqueta, se comprueba el índice del objeto Node. Si es 1, se impide la edición. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo e intente modificar las etiquetas.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"P1","Primario 1")
   Set nodX = TreeView1.Nodes.Add("P1",tvwChild,,"Secundario 1")
   Set nodX = TreeView1.Nodes.Add("P1",tvwChild,,"Secundario 2")
   nodX.EnsureVisible   ' Se asegura de que todos los nodos sean visibles.
End Sub

Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
   ' Comprueba el índice del nodo seleccionado. Si es 1,
   ' cancela la operación de edición.
   If TreeView1.SelectedItem.Index = 1 Then
      MsgBox "No se puede modificar " + TreeView1.SelectedItem.Text
      Cancel = True
   End If
End Sub

Este ejemplo agrega varios objetos ListItem a un control ListView. Si intenta modificar una etiqueta, se comprobará el índice del objeto ListItem. Si es 1, se impide la edición. Para probar el ejemplo, agregue un control ListView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y pruebe a modificar las etiquetas.

Private Sub Form_Load()
   Dim nodX As ListViewItem
   Set nodX = ListView1.ListItems.Add(, , "Elemento 1")
   Set nodX = ListView1.ListItems.Add(, , "Elemento 2")
   Set nodX = ListView1.ListItems.Add(, , "Elemento 3")
End Sub

Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
   ' Comprueba el índice del elemento seleccionado. Si es
   ' 1, se cancela la operación de edición.
   If ListView1.SelectedItem.Index = 1 Then
      MsgBox "No se puede modificar " + ListView1.SelectedItem.Text
         Cancel = True
   End If
End Sub


ButtonClick (Evento)

Ocurre cuando el usuario hace clic en un objeto Button de un control Toolbar.

Sintaxis

Private Sub objeto_ButtonClick(ByVal botón As Button)

La sintaxis del evento ButtonClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Toolbar.
botón | Una referencia al objeto Button en el que se ha hecho clic.

Comentarios

Para programar la respuesta de un objeto Button individual al evento ButtonClick, use el valor del argumento botón. Por ejemplo, el siguiente fragmento de código usa la propiedad Key del objeto Button para determinar la acción apropiada.

Private Sub Toolbar1_ButtonClick(ByVal Button As Button)
   Select Case Button.Key
   Case "Abrir"
      CommonDialog1.ShowOpen
   Case "Guardar"
      CommonDialog1.ShowSave
   End Select
End Sub

Nota Como el usuario puede reorganizar los objetos Button mediante el cuadro de diálogo Personalizar barra de herramientas, el valor de la propiedad Index puede no siempre indicar la posición del botón. Por tanto, es preferible emplear el valor de la propiedad Key para recuperar un objeto Button.


ButtonDropDown (Evento)

Ocurre cuando el usuario hace clic en la flecha de despliegue de un objeto Button .

Sintaxis

Private Sub objeto_ButtonDropDown(ByVal Button As ComctlLib.Button)

La sintaxis del evento ButtonDropDown consta de las siguientes partes:

Parte | Descripción
objeto | Requerido
Button | Devuelve una referencia al objeto Button en el que se hizo clic.

Comentarios

La flecha de despliegue aparece tan sólo cuando el atributo Style de un objeto Button tiene el valor tbrDropdown.

El evento ButtonDropDown ocurre antes del evento ButtonMenuClick. Utilice el evento ButtonDropDown con el fin de determinar qué elementos existen en la colección ButtonMenus y modifíquelos según sea necesario.


Ejemplo de evento ButtonDropDown

El ejemplo siguiente devuelve todos los elementos de menú en una colección ButtonMenus. Para probar el ejemplo, dibuje un control Toolbar en un formulario y pegue el código en la sección Declaraciones. Ejecute el proyecto y haga clic en los botones de menú.

Private Sub Toolbar1_ButtonDropDown(ByVal Button As ComctlLib.Button)
   ' Oculta un control ButtonMenu basado en el índice del control Button.
   Select Case Button.Index
   Case 1
      Button.ButtonMenus(1).Visible = False
   Case 2
      Button.ButtonMenus(2).Visible = False
   Case 3
      Button.ButtonMenus(3).Visible = False
   End Select
End Sub

Private Sub Form_Load()
   Dim btn As Button
   Dim i As Integer
   Dim j As Integer
   ' Agrega tres botones al control Toolbar. Por cada botón, agrega tres
   ' elementos de menú a la colección ButtonMenus.
   For i = 1 To 3
      Set btn = Toolbar1.Buttons.Add(, , "button " & i, tbrDropdown)
      For j = 1 To 3
         btn.ButtonMenus.Add , , "button " & i & " menuitem " & j
      Next j
   Next i
End Sub


ButtonMenuClick (Evento)

Ocurre cuando el usuario hace clic en un objeto ButtonMenu.

Sintaxis

Private Sub objeto_ButtonMenuClick([índice As Integer,]ByVal ButtonMenu As ComctlLib.ButtonMenu)

La sintaxis del evento ButtonMenuClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Un entero que identifica de forma exclusiva un control cuando éste no se encuentra en una matriz de controles.
ButtonMenu | Una referencia al objeto ButtonMenu en el que se hizo clic.

Comentarios

Utilice el evento ButtonMenuClick con la propiedad Parent del objeto ButtonMenu para determinar el botón en el que el usuario hizo clic.


Ejemplo de objeto ButtonMenu y de evento ButtonMenuClick

En el ejemplo se agregan cinco objetos Button a un control Toolbar y se agregan también dos objetos ButtonMenu a cada objeto Button. El evento ButtonMenuClick permite determinar el comportamiento de un objeto ButtonMenu cuando se hace clic en el mismo. Para probar el ejemplo, inserte un control Toolbar en un formulario y pegue el código dentro de la sección Declaraciones del módulo de programa.

Option Explicit

Private Sub Form_Load()
   Dim i As Integer
   Dim btn As Button

   ' Agrega cinco objetos Button al control Toolbar.
   For i = 1 To 5
      Set btn = Toolbar1.Buttons.Add(Caption:= i, Style:= tbrDropDown)
      ' Agrega dos objetos ButtonMenu a cada Button.
         btn.ButtonMenus.Add Text:="Ayuda"
         btn.ButtonMenus.Add Text:="Opciones"
   Next i
End Sub

Private Sub Toolbar1_ButtonMenuClick(ByVal ButtonMenu As ComctlLib.ButtonMenu)
   Select Case ButtonMenu.Index
   Case 1
      MsgBox "Haga clic en el botón."
   Case 2
      MsgBox "Ofrece algunas opciones"
   End Select
End Sub


Change (Evento, controles ToolBar y Slider)

Indica que ha cambiado el contenido de un control. Cómo y cuándo se produce este evento depende del control.

Sintaxis

Private Sub objeto_Change([index As Integer])

La sintaxis del evento Change consta de las partes siguientes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control de la lista Se aplica a.
index | Un entero que identifica de forma única a un control si éste se encuentra en una matriz de controles.

Comentarios

  • Slider: se genera cuando cambia la propiedad Value, ya sea por medio del código o cuando el usuario mueve el control deslizante.

  • Toolbar: se genera después de que el usuario final personaliza la barra de herramientas del control Toolbar mediante el cuadro de diálogo Personalizar barra de herramientas.

El procedimiento de evento Change puede sincronizar o coordinar la presentación de datos entre los controles. Por ejemplo, puede usar el procedimiento de evento Change del control Slider para actualizar el valor de su propiedad Value en un control TextBox. O bien podría usar el procedimiento de evento Change para mostrar datos y fórmulas en un área de trabajo y los resultados en otra área diferente.

Nota A veces un procedimiento de evento Change puede provocar eventos en cascada. Esto sucede cuando el evento Change del control altera el contenido del control al establecer una propiedad en el código que determina el valor del control, como puede ser el valor de la propiedad Text de un control TextBox. Para impedir procedimientos en cascada:

  • En la medida de lo posible, evite escribir un procedimiento de evento Change para controles que alteren el contenido de dicho control. Si escribe ese tipo de procedimiento, asegúrese de establecer un indicador que evite realizar más cambios mientras se está produciendo el cambio actual.

  • Evite crear dos o más controles cuyos procedimientos de evento Change se afecten entre sí, por ejemplo, dos controles TextBox que se actualizan uno al otro durante sus eventos Change.


Collapse (Evento, control TreeView)

Se genera al contraer cualquier objeto Node de un control TreeView.

Sintaxis

Private Sub objeto_Collapse(ByVal nodo As Node)

La sintaxis del evento Collapse consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nodo | Una referencia al objeto Node en el que se ha hecho clic.

Comentarios

El evento Collapse se produce antes del evento Click estándar.

Existen tres formas de contraer un objeto Node: establecer a False su propiedad Expanded, hacer doble clic en un objeto Node y hacer clic en una imagen más/menos cuando la propiedad Style del control TreeView se ha establecido a un estilo que incluye estas imágenes. Todos estos métodos generan el evento Collapse.

El evento pasa una referencia al objeto Node contraído. Esta referencia puede usarse para validar una acción, como en el ejemplo siguiente:

Private Sub TreeView1_Collapse(ByVal Node As Node)
   If Node.Index = 1 Then
      Node.Expanded = True   ' Expande el nodo de nuevo.
   End If
End Sub


Ejemplo del evento Collapse (Control TreeView)

En este ejemplo se agrega a un control TreeView un objeto Node con varios nodos secundarios. Cuando el usuario contrae un objeto Node, el código realiza una comprobación para ver cuántos secundarios tiene el Node. Si tiene más de uno, el objeto Node vuelve a expandirse. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga doble clic en un Node para contraerlo y generar el evento.

Private Sub Form_Load()
   TreeView1.Style = tvwTreelinesPlusMinusText ' Estilo 6.
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"DV","Da Vinci")
   Set nodX = TreeView1.Nodes.Add("DV",tvwChild,"T","Tiziano")
   Set nodX = TreeView1.Nodes.Add("T",tvwChild,"R","Rembrandt")
   Set nodX = TreeView1.Nodes.Add("R",tvwChild,,"Goya")
   Set nodX = TreeView1.Nodes.Add("R",tvwChild,,"David")
   nodX.EnsureVisible   ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_Collapse(ByVal Node As Node)
   ' Si el nodo tiene más de un secundario,
   ' lo mantiene expandido.
   Select Case Node.Children
      Case Is > 1
         Node.Expanded = True
   End Select
End Sub


ColumnClick (Evento)

Se produce cuando se hace clic en un objeto ColumnHeader de un control ListView. Sólo está disponible en la vista Informe.

Sintaxis

Private Sub objeto_ColumnClick(ByVal encabezadoColumna As ColumnHeader)

La sintaxis del evento ColumnClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
encabezadoColumna | Una referencia al objeto ColumnHeader en el que se ha hecho clic.

Comentarios

Las propiedades Sorted, SortKey y SortOrder se utilizan normalmente en el código para ordenar los objetos ListItem en la columna donde se ha hecho clic.


DropDown (Evento, control ImageCombo)

Ocurre cuando la parte de lista del control ImageCombo está a punto de desplegarse.

Sintaxis

Private Sub objeto_DropDown( )

El marcador de posición objeto es una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Este evento no se produce si la propiedad Style del control ImageCombo tiene el valor 1 (ImgCboSimpleCombo).

Utilice un procedimiento de evento DropDown para introducir las últimas actualizaciones en la lista de un control ImageCombo antes de que el usuario realice una selección. Esto permite agregar o quitar elementos de la lista, cambiar las imágenes mostradas o introducir modificaciones a la lista, sus elementos o sus propiedades.


Ejemplo del evento DropDown

En el código siguiente se comprueba el valor de un elemento de menú para ver si conviene mostrar el estado de estos elementos. Si se va a mostrar el estado, el código comprueba el valor de la propiedad Tag de cada elemento de la lista y establece la propiedad Image en consecuencia. Si no se va a mostrar el estado, la propiedad Image del elemento se establece a "Desactivada".

Private Sub ImageCombo1_DropDown()
   If mnuShowStatus.Checked = True Then
      For Each CboItem in ImageCombo1.ComboItems
         Select Case CboItem.Tag
         Case "Bloqueado"
            CboItem.Image = "Candado"
         Case "Borrado"
            CboItem.Image = "MarcaX"
         Case "Seleccionado"
            CboItem.Image = "MarcaVerif"
         Case Else
            CboItem.Image = "Desactivada"
         End Select
      Next CboItem
   Else
      For Each CboItem in ImageCombo1.ComboItems
         CboItem.Image = "Desactivada"
      Next CboItem
   End If
End Sub

En el código anterior, "Desactivado", "Candado", "MarcaX" y "MarcaVerif" son valores de clave que corresponden a determinadas imágenes dentro del control ImageList asociado con el control ImageCombo.


Expand (Evento, control TreeView)

Se produce al expandir un objeto Node de un control TreeView, es decir, cuando sus nodos secundarios se hacen visibles.

Sintaxis

Private Sub objeto_Expand(ByVal nodo As Node)

La sintaxis del evento Expand consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nodo | Una referencia al objeto Node expandido.

Comentarios

El evento Expand se produce después de los eventos Click y DblClick.

El evento Expand se puede generar de tres formas: cuando el usuario hace doble clic en un objeto Node que tiene nodos secundarios, cuando se establece a True la propiedad Expanded de un objeto Node y cuando se hace clic en la imagen más/menos. Puede usar el evento Expand para validar un objeto, como en el ejemplo siguiente:

Private Sub TreeView1_Expand(ByVal Node As Node)
   If Node.Index <> 1 Then
      Node.Expanded = False   ' Se evita la expansión.
   End If
End Sub


Ejemplo del evento Expand

En este ejemplo se agregan varios objetos Node a un control TreeView. Cuando se expande un objeto Node, se genera el evento Expand y se muestra información sobre el Node. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y expanda los nodos.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(, , "RP", "Primario raíz")
   Set nodX = TreeView1.Nodes.Add("RP", tvwChild, "C1", "Secundario 1")
   Set nodX = TreeView1.Nodes.Add("C1", tvwChild, "C2", "Secundario 2")
   Set nodX = TreeView1.Nodes.Add("C2", tvwChild, "C3", "Secundario 3")
   Set nodX = TreeView1.Nodes.Add("C2", tvwChild, "C4", "Secundario 4")
   TreeView1.Style = tvwTreelinesPlusMinusText   ' Estilo 6.
   TreeView1.LineStyle = tvwRootLines   ' Estilo 1
End Sub

Private Sub TreeView1_Expand(ByVal Node As Node)
   Select Case Node.Key Like "C*"
   Case Is = True
      MsgBox Node.Text & " es un nodo secundario."
   End Select
End Sub


ItemCheck (Evento, control ListView)

Ocurre cuando el usuario activa un elemento.

Sintaxis

Private Sub objeto_ItemCheck ([Index As Integer,] ByVal Item As ComctlLib.ListItem)

La sintaxis del evento ItemCheck consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
Index | Un entero que identifica de forma exclusiva un control cuando éste no se encuentra en una matriz de controles.
Item | Devuelve una referencia al objeto ListItem en el que se hizo clic.

Comentarios

Sólo aparecen casillas de verificación cuando la propiedad Checkboxes tiene el valor True y la propiedad View tiene el valor lvwReport.


ItemClick (Evento)

Se produce cuando se hace clic en un objeto ListItem de un control ListView.

Sintaxis

Private Sub objeto_ItemClick(ByVal elemento As ListItem)

La sintaxis del evento ItemClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
elemento | El objeto ListItem en el que se ha hecho clic.

Comentarios

Use este evento para determinar en qué ListItem se hizo clic. Este evento se desencadena antes que el evento Click. El evento Click estándar se genera si se hace clic con el mouse (ratón) en cualquier parte del control ListView. El evento ItemClick sólo se genera cuando se hace clic con el mouse en el texto o en la imagen de un objeto ListItem.


Ejemplo del evento ItemClick

Este ejemplo llena un control ListView con el contenido de la tabla Publishers de la base de datos Biblio.mdb. Cuando se hace clic en un objeto ListItem, el código comprueba el valor de la propiedad Index. Si el valor es menor de 15, no ocurre nada. Si el valor es mayor que 15, se atenúa el objeto ListItem. Para probar el ejemplo, coloque un control ListView en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en uno de los elementos.

Private Sub ListView1_ItemClick(ByVal Item As ListItem)
   Select Case Item.Index
   Case Is = <15
      Exit Sub
   Case Is => 15
      ' Alterna la propiedad Ghosted.
      Item.Ghosted = Abs(Item.Ghosted) - 1
   End Select
End Sub

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega ColumnHeaders. El ancho de las columnas es el
   ' ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

ListView1.BorderStyle = ccFixedSingle  ' Establece la propiedad                                              ' BorderStyle.

   ' Crea variables de objeto para los objetos de acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla
   ' Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Crea una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un
   ' objeto ListItem.
   ' Usa el campo Name para el texto del objeto ListItem.
   ' Usa el campo Address para el SubItem(1) del objeto
   ' ListItem.
   ' Usa el campo Phone para el SubItem(2) del
   ' objeto ListItem

   While Not myRs.EOF

      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))

      ' Si el campo Address no es Null, establece
      ' SubItem 1 como el campo.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address) ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece el
      ' SubItem 2 como el campo.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext ' Va al registro siguiente.
   Wend
   ListView1.View = lvwReport   ' Establece la vista Informe.
End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
   ListView1.SortKey = ColumnHeader.Index - 1
   ListView1.Sorted = True
End Sub


NodeCheck (Evento)

Ocurre cuando la propiedad CheckBoxes es igual a True y un objeto Node está activado o desactivado.

Sintaxis

objeto_NodeCheck(ByVal Node As ComctlLib.Node)

La sintaxis del evento NodeCheck consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
Node | Devuelve una referencia al objeto Node activado.

Comentarios

El evento no se producirá cuando la propiedad Checked del objeto Node está establecida a True o False.


NodeClick (Evento)

Se produce al hacer clic en un objeto Node.

Sintaxis

Private Sub objeto_NodeClick(ByVal nodo As Node)

La sintaxis del evento NodeClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nodo | Una referencia al objeto Node en el que se ha hecho clic.

Comentarios

Cuando el usuario hace clic en cualquier punto de un control TreeView, fuera de un objeto nodo, se genera el evento Click estándar. El evento NodeClick se genera cuando el usuario hace clic en un objeto Node determinado y devuelve una referencia al objeto Node que puede usarse para validarlo antes de realizar alguna otra acción.

El evento NodeClick se produce antes del evento Click estándar.


Ejemplo del evento NodeClick

En este ejemplo se agregan varios objetos Node a un control TreeView. Al hacer clic en un objeto Node se desencadena el evento NodeClick, que se utiliza para obtener el índice y el texto del nodo. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en cualquier objeto Node.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"R","Raíz")
   nodX.Expanded = True
   Set nodX = TreeView1.Nodes.Add(,,"P","Primario")
   nodX.Expanded = True
   Set nodX = TreeView1.Nodes.Add("R",tvwChild,,"Secundario 1")
   Set nodX = TreeView1.Nodes.Add("R",tvwChild,,"Secundario 2")
   Set nodX = TreeView1.Nodes.Add("R",tvwChild,,"Secundario 3")
   Set nodX = TreeView1.Nodes.Add("P",tvwChild,,"Secundario 4")
   Set nodX = TreeView1.Nodes.Add("P",tvwChild,,"Secundario 5")
   Set nodX = TreeView1.Nodes.Add("P",tvwChild,,"Secundario 6")
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Form1.Caption = "Índice = " & Node.Index & " Texto:" & Node.Text
End Sub


PanelClick (Evento)

El evento PanelClick es similar al evento Click estándar, pero se produce cuando el usuario presiona y después suelta un botón del mouse (ratón) sobre cualquiera de los objetos Panel de un control StatusBar.

Sintaxis

Private Sub objeto_PanelClick(ByVal panel As Panel)

La sintaxis del evento PanelClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control StatusBar.
panel | Una referencia a un objeto Panel.

Comentarios

Al hacer clic en un objeto Panel también se produce el evento Click estándar.

El evento PanelClick sólo se genera cuando se hace clic en un objeto Panel. Cuando el valor de la propiedad Style del control StatusBar es Simple, los paneles permanecen ocultos y por tanto no se genera este evento.

Puede usar la referencia al objeto Panel para establecer las propiedades del panel. Por ejemplo, el código siguiente restablece la propiedad Bevel del Panel en el que se ha hecho clic:

Private Sub StatusBar1_PanelClick(ByVal Panel As Panel)
   Select Case Panel.Key
   Case "DisplayFileName" ' Key="DisplayFileName"
     Panel.Bevel = sbrRaised   ' Establece la propiedad Bevel
   ' Agrega otras instrucciones Case para otros paneles
   End Select
End Sub


Ejemplo del evento PanelClick

En este ejemplo se agregan dos objetos Panel a un control StatusBar. Cuando se hace clic en un Panel, el valor de sus propiedades Key y Width de ese control Panel se muestra en un tercer objeto Panel. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Después ejecute el ejemplo.

Private Sub Form_Load()
   Dim I as Integer
   For I = 1 to 2
      StatusBar1.Panels.Add
   Next I

   With StatusBar1.Panels
      .Item(1).Style = sbrDate
      .Item(1).Key = "Panel de fecha"
      .Item(1).AutoSize = sbrContents
      .Item(1).MinWidth = 2000
      .Item(2).Style = sbrTime
      .Item(2).Key = "Panel de hora"
      .Item(3).AutoSize = sbrContents   ' Contenido
      .Item(3).Text = "Panel 3"
      .Item(3).Key = "Panel 3"
   End With
End Sub

Private Sub StatusBar1_PanelClick(ByVal Panel As Panel)
   ' Muestra la clave y el ancho del panel en el
   ' Panel 3.
   StatusBar1.Panels("Panel 3").Text = Panel.Key & " Width = " & Panel.Width
End Sub


PanelDblClick (Evento)

El evento PanelDblClick es similar al evento DblClick estándar, pero se produce cuando el usuario presiona y después suelta un botón del mouse (ratón) dos veces sobre cualquiera de los objetos Panel de un control StatusBar.

Sintaxis

Sub objeto_PanelDblClick(ByVal panel As Panel)

La sintaxis del evento PanelDblClick consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control StatusBar.
panel | Una referencia al objeto Panel en el que se ha hecho doble clic.

Comentarios

Al hacer doble clic en un objeto Panel también se produce el evento DblClick estándar.

El evento PanelDblClick sólo se genera cuando se hace doble clic en un objeto Panel. Cuando el valor de la propiedad Style del control StatusBar es Simple, los paneles permanecen ocultos y por tanto no se genera este evento.


Ejemplo del evento PanelDblClick

En este ejemplo se agregan dos objetos Panel a un control StatusBar. Cuando el usuario hace doble clic en el control, se muestra el texto del objeto Panel en el que se ha hecho doble clic. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Después, ejecute el ejemplo y haga doble clic en el control.

Private Sub Form_Load()
Dim I as Integer
   For I = 1 to 2
      StatusBar1.Panels.Add
   Next I

   With StatusBar1.Panels
      .Item(1).Text = "Un texto de información largo."
      .Item(1).AutoSize = sbrContents   ' Contenido
      .Item(2).Style = sbrDate   ' Estilo de fecha
      .Item(2).AutoSize = sbrContents   ' Contenido
      .Item(3).Style = sbrTime   ' Estilo de hora
   End With
End Sub

Private Sub StatusBar1_PanelDblClick(ByVal Panel As Panel)
   MsgBox "Panel.Style = " & Panel.Style
End Sub


Scroll (Evento, control Slider)

Se produce al desplazar el control deslizante de un control Slider, ya sea haciendo clic en el control o mediante comandos de teclado.

Sintaxis

Private Sub objeto_Scroll()

El marcador de posición objeto representa una expresión de objeto que da como resultado un control Slider.

Comentarios

El evento Scroll se produce antes del evento Click.

El evento Scroll devuelve continuamente el valor de la propiedad Value mientras se va moviendo el control deslizante. Puede usar este evento para realizar cálculos y manipular controles que deban estar coordinados con los cambios realizados en el control Slider. Por el contrario, utilice el evento Change cuando desee que una actualización se produzca sólo una vez, después de que varíe la propiedad Value de un control Slider.

Nota Evite el uso de funciones o instrucciones MsgBox con este evento.


Add (Método, colección Buttons)

Agrega un objeto Button a una colección Buttons y devuelve una referencia al objeto recién creado.

Sintaxis

objeto.Add(índice, clave, título, estilo, imagen)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado una colección Buttons.
índice | Opcional. Un entero que especifica la posición en la que desea insertar el objeto Button. Si no se especifica ningún índice, Button se agrega al final de la colección Buttons.
clave | Opcional. Una cadena única que identifica al objeto Button. Use este valor para recuperar un objeto Button específico.
título | Opcional. Una cadena que aparecerá bajo el objeto Button.
estilo | Opcional. El estilo de un objeto Button. Los estilos disponibles se detallan en la propiedad Style. (objeto Button).
imagen | Opcional. Un entero o clave única que especifica un objeto ListImage en un control ImageList asociado.

Comentarios

Puede agregar objetos Button en tiempo de diseño mediante la ficha Botones de la Página de propiedades del control Toolbar. En tiempo de ejecución, emplee el método Add para agregar objetos Button como en el ejemplo de código siguiente:

Dim btnButton as Button
Set btnButton = Toolbar1.Buttons.Add(, "abrir", , tbrDefault, "abrir")

Asocie un control ImageList con Toolbar mediante la propiedad ImageList del control Toolbar.


Add (Método, colección ColumnHeaders)

Agrega un objeto ColumnHeader a una colección ColumnHeaders de un control ListView.

Sintaxis

objeto.Add(índice, clave, texto, ancho, alineación, icono)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado una colección ColumnHeaders.
índice | Opcional. Un entero que identifica de forma única un miembro de una colección de objetos.
clave | Opcional. Una expresión de cadena única que puede usarse para tener acceso a un miembro de la colección.
texto | Opcional. Una cadena que aparece en el objeto ColumnHeader.
ancho | Opcional. Una expresión numérica que especifica el ancho del objeto con las unidades de escala del contenedor del control.
alineación | Opcional. Un entero que determina la alineación del texto en el objeto ColumnHeader. Para ver los valores, elija la propiedad Alignment de la lista Vea también.
icono | Opcional. La clave o el índice de una imagen de la propiedad SmallIcons del control ImageList.

Comentarios

El método Add devuelve una referencia al objeto ColumnHeader recién insertado.

Utilice la parte índice para insertar un encabezado de columna en una posición específica de la colección ColumnHeaders.

Cuando los miembros de una colección ColumnHeaders puedan cambiar dinámicamente, puede hacer referencia a ellos mediante la propiedad Key, ya que puede cambiar la propiedad Index de cualquier objeto ColumnHeader.


Add (Método, colección ListImages)

Agrega un objeto ListImage a una colección ListImages.

Sintaxis

objeto.Add(índice, clave, imagen)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Opcional. Un número entero que especifica la posición donde desea insertar el objeto ListImage. Si no se especifica ningún índice, el objeto ListImage se agrega al final de la colección ListImages.
clave | Opcional. Una cadena única que identifica el objeto ListImage. Use este valor para recuperar un determinado objeto ListImage. Si la clave no es única, se producirá un error.
imagen | Requerido. Especifica la imagen que se va a agregar a la colección.

Comentarios

La colección ListImages es una colección basada en 1.

Puede cargar mapas de bits o iconos en un objeto ListImage. Para cargar un mapa de bits o un icono, puede usar la función LoadPicture, de la forma siguiente:

Set imgX = ImageList1.ListImages.Add(,,LoadPicture("nombreArchivo"))

También puede cargar un objeto Picture directamente en el objeto ListImage. El ejemplo siguiente carga una imagen del control PictureBox en el objeto ListImage:

Set imgX = ImageList1.ListImages.Add(,,Picture1.Picture)

Si no se ha agregado ningún objeto ListImage a la colección ListImages, puede establecer las propiedades ImageHeight e ImageWidth antes de agregar el primer objeto ListImage. Puede agregar imágenes de cualquier tamaño a la colección. Sin embargo, cuando el control ImageList está enlazado a otro control común de Windows, todas la imágenes que agregue a la colección se mostrarán (en el control común de Windows enlazado) con el tamaño especificado por las propiedades ImageHeight y ImageWidth. Una vez que ha agregado un objeto ListImage a la colección, las propiedades ImageHeight e ImageWidth se convierten en propiedades de sólo lectura.

Nota Puede usar el control ImageList con cualquier control estableciendo la propiedad Picture del segundo control al objeto Picture de cualquier imagen contenida en el control ImageList. Sin embargo, el tamaño de la imagen mostrada no se verá afectado por las propiedades ImageHeight y ImageWidth. En otras palabras, el segundo control mostrará la imagen con su tamaño original.

Debe usar la propiedad Key para hacer referencia a un objeto ListImage si espera que cambie el valor de la propiedad Index. Por ejemplo, si permite a los usuarios que agreguen a la colección sus propias imágenes, o que las eliminen, puede que se modifique el valor de la propiedad Index.

Cuando agrega un objeto ListImage a la colección, se devuelve una referencia al objeto recién creado. Puede usar esa referencia para establecer otras propiedades del objeto ListImage, de la forma siguiente:

Dim imgX As ListImage
Dim I As Integer
   Set imgX = ImageList1.ListImages. _
   Add(,,LoadPicture("icons\comm\net01.ico"))
   imgX.Key = "conexión de red" ' Use la nueva referencia para asignar Key.


Ejemplo del método Add (Colección ListImages)

Este ejemplo agrega varias imágenes a una colección ListImages y usa después las imágenes en un control TreeView. Para probar el ejemplo, coloque los controles ImageList y TreeView en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo para ver TreeView lleno con imágenes de ImageList.

Private Sub Form_Load()
   Dim imgX As ListImage
   ' Carga tres iconos en la colección del control
   ' ImageList.
   Set imgX = ImageList1.ListImages. _
   Add(,"rocket", LoadPicture("icons\industry\rocket.ico"))
   Set imgX = ImageList1.ListImages. _
   Add(,"plane",LoadPicture("icons\industry\plane.ico"))
   Set imgX = ImageList1.ListImages. _
   Add(,"car",LoadPicture("icons\industry\cars.ico"))

   ' Establece la propiedad ImageList del control
   ' TreeView.
   Set TreeView1.ImageList = ImageList1

   ' Crea un control Treeview y usa objetos ListImage
   ' para sus imágenes.
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,,"Rocket")
   nodX.Image = 1   ' Usa la propiedad Index de la
   ' imagen 1.
   Set nodX = TreeView1.Nodes.Add(,,,"Plane")
   nodX.Image = "plane"   ' Usa la propiedad Key de la
   ' imagen 2.
   Set nodX = TreeView1.Nodes.Add(,,,"Car")
   nodX.Image = "car"   ' Usa la propiedad Key de la
   ' imagen 3.
End Sub


Add (Método, colección ListItems)

Agrega un objeto ListItem a una colección ListItems de un control ListView y devuelve una referencia al objeto recién creado.

Sintaxis

objeto.Add(índice, clave, texto, icono, iconoPequeño)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Necesario. Una expresión de objeto que da como resultado una colección ListItems.
índice | Opcional. Un entero que especifica la posición en la que desea insertar el objeto ListItem. Si no se especifica ningún índice, ListItem se agregará al final de la colección ListItems.
clave | Opcional. Una expresión de cadena única que puede usarse para tener acceso a un miembro de la colección.
texto | Opcional. Una cadena asociada al control del objeto ListItem.
icono | Opcional. Un entero que establece el icono que se va a mostrar en un control ImageList cuando el control ListView se muestre en la vista Iconos.
iconoPequeño | Opcional. Un entero que establece el icono que se va a mostrar en un control ImageList cuando el control ListView se muestre en la vista Iconos pequeños.

Comentarios

Antes de establecer las propiedades Icons o SmallIcons es necesario inicializarlas. Puede hacerlo en tiempo de diseño si especifica un objeto ImageList con la ficha General del cuadro de diálogo Página de propiedades del control ListView o en tiempo de ejecución con el código siguiente:

ListView1.Icons = ImageList1   'Suponiendo que Imagelist sea ImageList1.
ListView1.SmallIcons = ImageList2

Si la lista no está ordenada, puede insertar un objeto ListItem en cualquier posición mediante la parte índice. Si la lista está ordenada, se pasará por alto la parte índice y el objeto ListItem se insertará en la posición correcta basándose en el orden.

Si no se suministra índice, se agregará el objeto ListItem con un índice igual al número de objetos ListItem en la colección + 1.

Utilice la propiedad Key para hacer referencia a un miembro de la colección ListItems si espera que cambie el valor de la propiedad Index de un objeto, como es agregar o quitar dinámicamente objetos de la colección.


Ejemplo de la propiedad ListItems, SubItems (Método Add, ColumnHeaders)

El siguiente ejemplo utiliza la base de datos Biblio.mdb como origen para llenar un control ListView con objetos ListItem. Para probar este ejemplo, coloque un control ListView en un formulario y pegue el código en la sección Declaraciones. Debe asegurarse de tener instalada en su equipo la base de datos Biblio.mdb. En este ejemplo, compruebe la ruta de acceso de la función OpenDatabase y cámbiela por la ruta de acceso real de la base de datos Biblio.mdb de su equipo.

Nota El ejemplo no funcionará a menos que agregue una referencia a la Biblioteca de objetos de Microsoft DAO 3.5. Para ello, en el menú Proyecto, haga clic en Referencias. Busque Biblioteca de objetos de Microsoft DAO 3.5 y active la casilla de verificación para seleccionarla.

Private Sub Form_Load()
   ' Agrega objetos ColumnHeaders. El ancho de las columnas es
   ' el ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   ListView1.ColumnHeaders. _
   Add , , "Author", ListView1.Width / 3
   ListView1.ColumnHeaders. _
   Add , , "Author ID", ListView1.Width / 3, _
   lvwColumnCenter
   ListView1.ColumnHeaders. _
   Add , , "Birthdate", ListView1.Width / 3
   ' Asigna la propiedad View el valor Report.
   ListView1.View = lvwReport

   ' Crea variables de objeto para objetos de
   ' acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   ' IMPORTANTE: la base de datos BIBLIO.MDB debe estar en su
   ' equipo y debe establecer la ruta de acceso correcta
   ' para el archivo en la función OpenDatabase.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("c:\Archivos de programa\Microsoft Visual Studio\VB98\BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla
   '"Authors".
   Set myRs = myDb.OpenRecordset("Authors", dbOpenDynaset)

   ' Declara una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un objeto ListItem.
   ' Utiliza el campo Author para el texto del objeto ListItem.
   ' Usa el campo AuthorID para el SubItem(1) del objeto ListItem.
   ' Utiliza el campo "Year of Birth" para el SubItem(2) del objeto ListItem.

   While Not myRs.EOF
      Set itmX = ListView1.ListItems. _
      Add(, , CStr(myRs!Author))   ' Autor.

      ' Si el campo AuthorID no es Null, establece
      ' SubItem 1 como él.
      If Not IsNull(myRs!Au_id) Then
         itmX.SubItems(1) = CStr(myRs!Au_id)
      End If

      ' Si el campo Birth no es Null, establece
      ' SubItem 2 como él.
      If Not IsNull(myRs![Year Born]) Then
         itmX.SubItems(2) = myRs![Year Born]
      End If
      myRs.MoveNext   ' Pasa al siguiente registro.
   Wend
End Sub


Add (Método, colección ButtonMenus)

Agrega un objeto ButtonMenu a la colección ButtonMenus y devuelve una referencia al objeto recién creado.

Sintaxis

objeto.Add (índice, clave, texto)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Opcional. Un entero que especifica la posición donde se desea insertar el objeto. Si no se especifica un índice, se agrega el objeto al final de la colección.
clave | Opcional. Una cadena única que identifica del objeto. Utilice este valor para recuperar un objeto específico de la colección.
texto | Requerido. La cadena que aparecerá en el menú.

Comentarios

Para mostrar objetos ButtonMenu, es necesario asignar el valor tbrDropDown a la propiedad Button del objeto Style.

Utilice el evento ButtonMenuClick del control Toolbar para detectar cuándo el usuario hizo clic en un objeto ButtonMenu.


Add (Método, colección ComboItems)

Agrega un objeto ComboItem a la colección y devuelve una referencia al objeto recién creado.

Sintaxis

objeto.Add(Index As Variant, Key As Variant, Text As Variant, Image As Variant, SelImage As Variant, Indentation As Variant) As ComboItem

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
Index | Opcional. La posición dentro de la colección donde se crea el nuevo objeto.
Key | Opcional. Una cadena única que identifica el elemento dentro de la colección. Es posible usar ésta en lugar de Index para identificar el objeto.
Text | Opcional. El texto del elemento, tal y como se muestra en las partes de texto y de lista del cuadro combinado.
Image | Opcional. Un índice o una clave dentro de un control ImageList que identifica la imagen asociada al elemento de la lista.
SelImage | Opcional. Un índice o una clave dentro de un control ImageList que identifica la imagen usada para indicar que el elemento está seleccionado.
Indentation | Opcional. El nivel de sangría que se aplicará al elemento. La propiedad Indentation determina la cantidad de espacio aplicado en cada nivel de sangría.
ComboItem | Una referencia al nuevo objeto ComboItem devuelto por la función cuando se completó correctamente.

Comentarios

Si el método Add se pasa sin argumentos, se crea el nuevo objeto como el último dentro de la colección. No se especifican valores predeterminados e Indentation tiene el valor 0.

El método Add devuelve una referencia al objeto ComboItem recién creado. Utilice este método para asignar el nuevo ComboItem a una variable de objeto y tener acceso a cualquiera de sus propiedades para lectura o modificación.


Ejemplo del método Add

En el ejemplo siguiente se agrega un objeto ComboItem con el método Add y se aprovecha la referencia devuelta para cambiar las propiedades del nuevo objeto.

Dim ci As ComboItem

Set ci = ImageCombo1.ComboItems. _
Add(1, "Señal1", "Luz", "LuzRoja", "LuzVerde", 0, 0)

ci.ToolTipText = "Semáforo"
ci.Indentation = 2


Add (Método, colección ListSubItems)

Agrega un objeto ListSubItem a la colección ListSubItems y devuelve una referencia al objeto recién creado.

Sintaxis

objeto.Add (índice, clave, texto, ReportIcon, ToolTipText)

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Opcional. Un entero que especifica la posición donde desea insertar el objeto. Si no se especifica ningún índice, se agrega el objeto al final de la colección.
clave | Opcional. Una cadena única que identifica el objeto. Utilice este valor para recuperar un objeto específico de la colección.
texto | Opcional. La cadena mostrada por el control ListView en la vista Informe.
ReportIcon | Opcional. El valor de una propiedad Index o Key que especifica un objeto ListImage del control ImageList asociado.
ToolTipText | Opcional. La cadena que se muestra cuando el puntero del mouse se sitúa sobre el ListSubItem.

Comentarios

La colección ListSubItems reemplaza la matriz de cadenas SubItems. La matriz SubItems sigue estando disponible en el control ListView, pero se recomienda el uso de la colección ListSubItems en las nuevas aplicaciones por su mayor flexibilidad.


Add (Método, colección Nodes)

Agrega un objeto Node a la colección Nodes de un control TreeView.

Sintaxis

objeto.Add(relativa, relación, clave, texto, imagen, imagenSeleccionada)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
relativa | Opcional. El número de índice o clave de un objeto Node ya existente. Su relación con el nuevo nodo viene determinada por el argumento siguiente, relación.
relación | Opcional. Especifica la ubicación relativa del objeto Node, como se describe en Valores.
clave | Opcional. Una cadena única que puede usarse para recuperar el objeto Node con el método Item.
texto | Requerido. La cadena que aparece en el objeto Node.
imagen | Opcional. El índice de una imagen de un control ImageList asociado.
imagenSeleccionada | Opcional. El índice de una imagen de un control ImageList asociado que se muestra cuando se selecciona el objeto Node.

Valores

Los valores válidos para relación son:

Constante | Valor | Descripción
tvwFirst | 0 | Primero. El objeto Node se sitúa antes de todos los demás nodos al mismo nivel que el especificado en relativo.
tvwLast | 1 | Último. El objeto Node se sitúa después de todos los demás nodos al mismo nivel que el especificado en relativo. Los objetos Node que se agregan secuencialmente se irán situando detrás del último agregado.
tvwNext | 2 | (Predeterminado) Siguiente. El objeto Node se sitúa después del especificado en relativo.
tvwPrevious | 3 | Anterior. El objeto Node se sitúa antes del especificado en relativo.
tvwChild | 4 | Secundario. El objeto Node es secundario con respecto al nodo especificado en relativo.

Nota Si no se especifica ningún objeto Node en relativo, el nuevo nodo se situará en la última posición del nivel superior de la jerarquía de nodos.

Comentarios

La colección Nodes empieza a numerar por 1.

A medida que se agrega un objeto Node se le asigna un número de índice que se almacena en su propiedad Index. El valor de índice del último miembro agregado es el valor de la propiedad Count de la colección Nodes.

Como el método Add devuelve una referencia al objeto Node recién creado, resulta útil establecer las propiedades del nuevo objeto Node usando esta referencia. En el ejemplo siguiente se agregan varios objetos Node con las mismas propiedades:

Dim nodX As Node   ' Declara la variable de objeto.
Dim I as Integer   ' Declara una variable contador.
For I = 1 to 4
   Set nodX = TreeView1.Nodes.Add(,,,"Nodo " & Cstr(i))
   ' Usa la referencia para establecer otras propiedades, como Enabled.
   nodX.Enabled = True
   ' Establece la imagen 3 de un control ImageList asociado.
   nodX.ExpandedImage = 3
Next I


Ejemplo del método Add (Colección Nodes)

En el ejemplo siguiente se agregan dos objetos Node a un control TreeView. Para probar el ejemplo, agregue a un formulario un control TreeView y pegue el código en la sección Declaraciones de dicho formulario. Ejecute el ejemplo y haga clic en el objeto Node para expandirlo.

Private Sub Form_Load()
   ' Establece propiedades del control ImageList.
   TreeView1.LineStyle = tvwRootLines  ' Linestyle = 1

   ' Agrega los objetos Node.
   Dim nodX As Node    ' Declara una variable Node.
   ' Primer nodo con el texto 'Raíz'.
   Set nodX = TreeView1.Nodes.Add(, , "r", "Raíz")

   ' Este nodo es secundario de Node 1 ("Raíz").
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, "child1", "Secundario")

End Sub


Add (Método, colección Panels)

Agrega un objeto Panel a una colección Panels y devuelve una referencia al objeto Panel creado.

Sintaxis

objeto.Add(índice, clave, texto, estilo, imagen)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado una colección Panels.
índice | Opcional. Un entero que especifica la posición en la que se insertará el objeto Panel. Si no se especifica índice, el Panel se agregará al final de la colección Panels.
clave | Opcional. Una cadena única que identifica el objeto Panel. Utilice clave para obtener un objeto Panel específico. Es equivalente a asignar la propiedad Key del nuevo objeto Panel después de que se haya agregado el proyecto.
texto | Opcional. Una cadena que aparece en el Panel. Es equivalente a establecer la propiedad Text del nuevo objeto Panel después de que se haya agregado el objeto.
estilo | Opcional. El estilo del panel. Los estilos disponibles se detallan en Style (Propiedad, objeto Panel). Es equivalente a asignar la propiedad Style del nuevo objeto Panel después de que se haya agregado el objeto.
imagen | Opcional. Especifica el mapa de bits mostrado en el objeto Panel activo. Si desea más información, vea la función LoadPicture. Esto es equivalente a asignar la propiedad Picture del nuevo objeto Panel después de que se haya agregado el objeto.

Comentarios

En tiempo de ejecución, el método Add devuelve una referencia al objeto Panel recién insertado. Con esta referencia puede establecer las propiedades de los nuevos objetos Panel como se indica a continuación:

Dim pnlX As Panel
Dim i As Integer
For i = 1 To 6  ' Agrega seis objetos Panel.
   ' Crea un panel y obtiene simultáneamente una
   ' referencia al mismo.
    Set pnlX = StatusBar1.Panels.Add(, "Panel" & i) ' Set Key property.
    pnlX.Style = i  ' Establece la propiedad Style.
    pnlX.AutoSize = sbrContents ' Establece la propiedad AutoSize.
Next i

El valor de la propiedad Text se muestra en un objeto Panel cuando la propiedad Style del objeto Panel se establece a sbrText.

La colección Panels empieza a numerar por 1. Para obtener una referencia al primer objeto Panel de una colección (el predeterminado), puede usar sus propiedades Index o Key (si existen) o el método Item. El código siguiente hace referencia al primer objeto Panel mediante su índice.

Dim pnlX As Panel
' Obtiene una referencia al primer panel.
Set pnlX = StatusBar1.Panels(1) ' Utiliza el índice
pnlX.Text = "Texto modificado"   ' Cambia el texto del objeto Panel.

De forma predeterminada, el control ya contiene un objeto Panel. Por ello, después de agregar paneles a una colección, el valor de la propiedad Count será una unidad superior al número de paneles agregado. Por ejemplo:

Dim i as Integer
For i = 1 to 4  ' Agrega cuatro paneles.
   StatusBar1.Panels.Add   ' Agrega paneles sin propiedades.
Next i
MsgBox StatusBar1.Panels.Count   ' Devuelve 5 paneles.


Ejemplo del método Add (colección Panels)

En este ejemplo se utiliza el método Add para agregar tres nuevos objetos Panel a un control StatusBar. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Después ejecute el ejemplo.

Private Sub Form_Load()
Dim pnlX As Panel
    ' Agrega un panel en blanco como separador
    Set pnlX = StatusBar1.Panels.Add()
    pnlX.AutoSize = sbrSpring
    pnlX.MinWidth = 1
    ' Agrega un panel con un icono de reloj y el estilo hora.
    Set pnlX = StatusBar1.Panels.Add _
    (, , , sbrTime, LoadPicture("Graphics\icons\misc\clock03.ico"))
    ' Agrega un segundo panel con un mapa de bits y el estilo fecha.
    Set pnlX = StatusBar1.Panels.Add _
    (, , , sbrDate, LoadPicture("Graphics\bitmaps\assorted\calendar.bmp"))
    ' Establece la propiedad Bevel del último objeto
    ' Panel.
    pnlX.Bevel = sbrInset   ' Bisel hacia adentro.
    pnlX.Alignment = sbrRight   ' Propiedad Alignment del último objeto.
    ' Establece Text y AutoSize del primer panel (el
    ' predeterminado).
    StatusBar1.Panels(1).Text = "Ejemplo de agregar panel"
    StatusBar1.Panels(1).AutoSize = sbrContents
End Sub


Add (Método, colección Tabs)

Agrega un objeto Tab a una colección Tabs en un control TabStrip.

Sintaxis

objeto.Add(índice, clave, título, imagen)

La sintaxis del método Add consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado una colección Tabs.
índice | Opcional. Un entero que especifica la posición en la que desea insertar el objeto Tab. Si no especifica ningún índice, el objeto Tab se agrega al final de la colección Tabs.
clave | Opcional. Una cadena única que identifica al objeto Tab. Utilice la clave para recuperar una ficha específica. Es equivalente a establecer la propiedad Key del nuevo objeto Tab después de haberlo agregado a la colección Tabs.
título | Opcional. La cadena que aparece en el objeto Tab. Es equivalente a establecer la propiedad Caption del nuevo objeto Tab después de haberlo agregado a la colección Tabs.
imagen | Opcional. El índice de una imagen en un control ImageList asociado. Esta imagen se muestra en la ficha. Es equivalente a establecer la propiedad Image del nuevo objeto Tab después de haberlo agregado a la colección Tabs.

Comentarios

Para agregar fichas al control TabStrip en tiempo de diseño, haga clic en el botón Insertar ficha de la ficha Fichas de la Página de propiedades del control TabStrip y complete los campos apropiados para la nueva ficha.

Para agregar fichas al control TabStrip en tiempo de ejecución, utilice el método Add, que devuelve una referencia al objeto Tab recién insertado. Por ejemplo, el siguiente código agrega una ficha con el título "Hola" y cuya clave es "MiFicha", como la segunda ficha (su índice es 2).

Set X = TabStrip1.Tabs.Add(2,"MiFicha","Hola")


Ejemplo del método Add (Colección Tabs)

Este ejemplo agrega tres objetos Tab, cada uno con títulos e imágenes de un control ImageList, a un control TabStrip. Para probar este ejemplo, ponga un control ImageList y un control TabStrip en un formulario. El control ImageList proporciona las imágenes para los objetos Tab. Pegue el siguiente código en el evento Load del objeto Form y ejecute el programa.

Private Sub Form_Load()
   Dim X As Integer
   Set TabStrip1.ImageList = ImageList1
   TabStrip1.Tabs(1).Caption = "Hora"
   TabStrip1.Tabs.Add 2, , "Fecha"
   TabStrip1.Tabs.Add 3, , "Correo"
   For X = 1 To TabStrip1.Tabs.Count
      TabStrip1.Tabs(X).Image = X
   Next X
End Sub


ClearSel (Método)

Borra la selección actual de un control Slider.

Sintaxis

objeto.ClearSel

El marcador de posición objeto representa una expresión de objeto que da como resultado un control Slider.

Comentarios

Este método establece la propiedad SelStart al valor de la propiedad Value y asigna 0 a la propiedad SelLength.


CreateDragImage (Método)

Crea una imagen de arrastre con una versión difuminada de la imagen asociada a un objeto. Normalmente, esta imagen se utiliza en las operaciones de arrastrar y colocar.

Sintaxis

objeto.CreateDragImage

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Normalmente, el método CreateDragImage se utiliza para asignar una imagen a una propiedad DragIcon al inicio de una operación de arrastrar y colocar.


Ejemplo del método CreateDragImage

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un objeto Node, puede arrastrarlo hasta cualquier otro objeto Node. Para probar el ejemplo, agregue un control TreeView y un control ImageList a un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y arrastre objetos Node para ver el resultado.

' Declara variables globales.
Dim indrag As Boolean 'Indicador de operación de arrastrar y colocar.
Dim nodX As Object ' Elemento que se arrastra.

Private Sub Form_Load()
   ' Carga un mapa de bits en un control Imagelist.
   Dim imgX As ListImage
   Dim BitmapPath As String
   BitmapPath = "icons\mail\mail01a.ico"
   Set imgX = imagelist1.ListImages.Add(, , LoadPicture(BitmapPath))

   ' Inicializa el control TreeView y crea varios nodos.
   TreeView1.ImageList = imagelist1
   Dim nodX As Node   ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 1", 1)
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 2", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 1", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 2", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 3", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 4", 1)
   Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Secundario 5", 1)
   nodX.EnsureVisible ' Expande el árbol para mostrar todos los nodos.
End Sub

Private Sub TreeView1_MouseDown _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   Set nodX = TreeView1.SelectedItem ' Establece el elemento arrastrado.
End Sub

Private Sub TreeView1_MouseMove _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = vbLeftButton Then ' Indica una operación de arrastrar.
      indrag = True ' Establece el indicador a verdadero.
      ' Establece el icono de arrastre con el método
      ' CreateDragImage.
      TreeView1.DragIcon = TreeView1.SelectedItem.CreateDragImage
      TreeView1.Drag vbBeginDrag ' Operación de arrastre.
   End If
End Sub

Private Sub TreeView1_DragDrop _
(Source As Control, x As Single, y As Single)
   If TreeView1.DropHighlight Is Nothing Then
      Set TreeView1.DropHighlight = Nothing
      indrag = False
      Exit Sub
   Else
      If nodX = TreeView1.DropHighlight Then Exit Sub
      Cls
      Print nodX.Text & " colocado en " & TreeView1.DropHighlight.Text
      Set TreeView1.DropHighlight = Nothing
      indrag = False
   End If
End Sub

Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
   If indrag = True Then
      ' Establece las coordenadas del mouse en
      ' DropHighlight.
      Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
   End If
End Sub


Customize (Método)

Llama al cuadro de diálogo Personalizar barra de herramientas, que permite al usuario reorganizar u ocultar objetos Button en un control Toolbar.

Sintaxis

objeto.Customize

El marcador de posición objeto es una expresión de objeto que da como resultado un control Toolbar.

Comentarios

El control Toolbar contiene un cuadro de diálogo incorporado que permite al usuario ocultar, mostrar o reorganizar botones en una barra de herramientas. Al hacer doble clic en la barra de herramientas se llama al método Customize, que presenta el cuadro de diálogo.

Utilice el método Customize cuando desee restringir la alteración de la barra de herramientas. Por ejemplo, el siguiente código permite al usuario personalizar la barra de herramientas sólo si se proporciona una contraseña:

Private Sub Command1_Click()
   If InputBox("Contraseña:") = "Chorus&Line9" Then
      Toolbar1.Customize   ' Llama al método Customize
   End If
End Sub

Para proteger el estado de un control Toolbar, el método SaveToolbar escribe en el registro de Windows. Puede restaurar un control Toolbar a su estado anterior mediante el método RestoreToolbar para leer la información guardada anteriormente en el registro.


DeselectAll (Método)

Borra todos los objetos Tab seleccionados en el control TabStrip.

Sintaxis

objeto.DeselectAll

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Utilice este método después de que el usuario haya seleccionado varias fichas: esto sólo es posible si la propiedad MultiSelect tiene el valor True.


Draw (Método)

Dibuja una imagen en un contexto de dispositivo de destino, como puede ser un control PictureBox, después de ejecutar una operación gráfica sobre la imagen.

Sintaxis

objeto.Draw (hDC, x,y, estilo)

La sintaxis del método Draw consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
hDC | Requerido. Un valor establecido en la propiedad hDC del objeto de destino.
x,y | Opcional. Las coordenadas que se usan para especificar la ubicación dentro del contexto de dispositivo donde se va a dibujar la imagen. Si no las especifica, la imagen se dibuja en el origen del contexto de dispositivo.
estilo | Opcional. Especifica la operación efectuada sobre la imagen, como se describe en Valores.

Valores

Los valores admitidos para estilo son:

Constante | Valor | Descripción
imlNormal | 0 | (Predeterminado) Normal. Dibuja la imagen sin cambios.
imlTransparent | 1 | Transparente. Dibuja la imagen usando la propiedad MaskColor para determinar qué color de la imagen va a ser transparente.
imlSelected | 2 | Seleccionado. Dibuja la imagen difuminada con el color establecido en el sistema para los elementos resaltados.
imlFocus | 3 | Enfoque. Dibuja la imagen difuminada y rayada con el color de resalte creando un efecto de trama rayada que indica que la imagen tiene el enfoque.

Comentarios

La propiedad hDC es un controlador (un número) usado por el sistema operativo Windows para hacer referencia interna a un objeto. Puede dibujar en el área interna de cualquier control que tenga una propiedad hDC. En Visual Basic, esos controles incluyen el objeto Form, el control PictureBox y el objeto Printer.

Como el objeto hDC puede cambiar mientras se está ejecutando una aplicación, es mejor especificar la propiedad hDC en lugar de un valor real. Por ejemplo, el código siguiente asegura que siempre se asigna el valor correcto de hDC al control ImageList:

ImageList1.ListImages(1).Draw Form1.hDC


Ejemplo del método Draw

Este ejemplo carga una imagen en un control ImageList. Cuando hace clic en el formulario, la imagen se dibuja en el formulario con cuatro estilos diferentes. Para probar el ejemplo, coloque un control ImageList en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el formulario.

Private Sub Form_Load()
   Dim X As ListImage
   'Carga una imagen en ImageList.
   Set X = ImageList1.ListImages. _
   Add(, , LoadPicture("bitmaps\assorted\intl_no.bmp"))
End Sub

Private Sub Form_Click()
   Dim space, intW As Integer   ' Crea variables de espaciado.

   ' Usa la propiedad ImageWidth para el espaciado.
   intW = ImageList1.ImageWidth
   space = Form1.Font.Size * 2 ' Usa el tamaño de fuente para el alto del espaciado.

   ScaleMode = vbPoints   ' Establece ScaleMode a puntos.
   Cls ' Borra el formulario.

   ' Dibuja la imagen con estilo Normal.
   ImageList1.ListImages(1).Draw Form1.hDC, , space,imlNormal
   ' Establece MaskColor a rojo, que aparecerá transparente.
   ImageList1.MaskColor = vbRed
   ' Dibuja la imagen con el color rojo (MaskColor) transparente.
   ImageList1.ListImages(1).Draw Form1.hDC, intW, space,imlTransparent
   ' Dibuja la imagen con el estilo Seleccionado.
   ImageList1.ListImages(1).Draw Form1.hDC, intW * 2,space,imlSelected
   ' Dibuja la imagen con el estilo Enfoque.
   ImageList1.ListImages(1).Draw Form1.hDC, intW * 3, space,imlFocus

   ' Imprime un título para las imágenes.
   Print _
   "Normal    Transparente    Seleccionado    Enfoque"

End Sub


EnsureVisible (Método)

Asegura que el objeto ListItem o Node especificado sea visible. Si es necesario, este método expande objetos Node y desplaza el control TreeView. Este método sólo desplaza el control ListView.

Sintaxis

objeto.EnsureVisible

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Valores devueltos

Valor | Descripción
True | El método devuelve True si el control ListView o TreeView debe desplazarse o expandirse para exponer el objeto.
False | El método devuelve False si no es necesario desplazar ni expandir el control.

Comentarios

Puede usar el método EnsureVisible cuando desee hacer visible un determinado objeto Node o ListItem, que puede estar oculto en un control TreeView o ListView.

El método no funcionará en un control TreeView si la propiedad Scroll está establecida a False.


Ejemplo del método EnsureVisible

En este ejemplo se agregan varios nodos a un control TreeView y se utiliza el método EnsureVisible para desplazar y expandir el árbol. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el formulario para ver cómo se expande el control TreeView.

Private Sub Form_Load()
   Dim nodX As Node
   Dim i as Integer
   TreeView1.BorderStyle = vbFixedSingle ' Muestra los bordes.

   Set nodX = TreeView1.Nodes.Add(,,,"Raíz")   ' Agrega el primer nodo.
   For i = 1 to 15   ' Agrega 15 nodos
      Set nodX = TreeView1.Nodes.Add(i,,,"Nodo " & CStr(i))
   Next i

   Set nodX = TreeView1.Nodes.Add(,,,"Último")
   ' Agrega uno con texto.
   Set nodX = TreeView1.Nodes.Add(i,,,"Expandido")
   'Agrega un secundario.
   Set nodX = TreeView1.Nodes.Add(i+1,,,"Muéstreme")
   'Agrega un último secundario.
End Sub

Private Sub Form_Click()
   ' El árbol se desplaza y se expande al hacer clic
   ' en el formulario.
   TreeView1.Nodes(TreeView1.Nodes.Count).EnsureVisible
End Sub


ExtractIcon (Método)

Crea un icono a partir de un mapa de bits en un objeto ListImage de un control ImageList y devuelve una referencia del icono que se acaba de crear.

Sintaxis

objeto.ExtractIcon

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Puede usar el icono creado con el método ExtractIcon como cualquier otro icono. Por ejemplo, puede usarlo como valor de la propiedad MouseIcon, como ilustra el código siguiente:

Set Command1.MouseIcon = ImageList1.ListImages(1).ExtractIcon


Ejemplo del método ExtractIcon

Este ejemplo carga un mapa de bits en un control ImageList. Cuando el usuario hace clic en el formulario, se usa el método ExtractIcon para crear un icono a partir del mapa de bits y ese icono se usa como valor de la propiedad MouseIcon del objeto Form. Para probar el ejemplo, coloque un control ImageList en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el formulario.

Private Sub Form_Load()
   Dim imgX As ListImage
   Set imgX = ImageList1.ListImages. _
   Add(, , LoadPicture("bitmaps\assorted\balloon.bmp"))
End Sub

Private Sub Form_Click()
   Dim picX As Picture
   Set picX = ImageList1.ListImages(1).ExtractIcon  ' Crea un icono.

   With Form1
   .MouseIcon =  picX   ' Establece el nuevo icono.
   .MousePointer = vbCustom    ' Establece el icono personalizado.
   End With
End Sub


FindItem (Método, control ListView)

Busca y devuelve una referencia a un objeto ListItem de un control ListView.

Sintaxis

objeto.FindItem (cadena, valor, índice, coincidencia)

La sintaxis del método FindItem consta de las siguientes partes:

Parte | Descripción
objeto | Necesario. Una expresión de objeto que da como resultado un control ListView.
cadena | Necesario. Una expresión de cadena que indica el objeto ListItem que debe buscarse.
valor | Opcional. Un entero o una constante que especifica si la cadena coincidirá con la propiedad Text, Subitems o Tag del objeto ListItem, como se describe en Valores.
índice | Opcional. Un entero o una cadena que identifica de forma única a un miembro de una colección de objetos y especifica la ubicación desde la cual debe comenzar la búsqueda. El entero es el valor de la propiedad Index; la cadena es el valor de la propiedad Key. Si no se especifica ningún índice, el valor predeterminado será 1.
coincidencia | Opcional. Un entero o una constante que especifica que se encontrará una coincidencia si la propiedad Text del elemento es la misma que la cadena, como se describe en Valores.

Valores

Los valores admitidos para valor son:

Constante | Valor | Descripción
lvwText | 0 | (Predeterminado) Hace coincidir la cadena con la propiedad Text de un objeto ListItem.
lvwSubitem | 1 | Hace coincidir la cadena con cualquier cadena de la propiedad SubItems de un objeto ListItem.
lvwTag | 2 | Hace coincidir la cadena con cualquier propiedad Tag de un objeto ListItem.

Los valores de coincidencia son:

Constante | Valor | Descripción
lvwWholeWord | 0 | (Predeterminado) Un entero o una constante que especifica que se producirá una coincidencia si la propiedad Text del elemento comienza por la palabra completa que se busca. Se pasa por alto si el criterio no es texto.
lvwPartial | 1 | Un entero o una constante que especifica que se producirá una coincidencia si la propiedad Text del elemento comienza la cadena que se busca. Se pasa por alto si el criterio no es texto.

Comentarios

Si especifica Text como criterio de búsqueda, podrá usar lvwPartial para que se produzca una coincidencia cuando la propiedad Text del objeto ListItem comience con la cadena que busca. Por ejemplo, para buscar el ListItem cuyo texto sea "Autoexec.bat" utilice:

' Crea una variable ListItem.
Dim itmX As ListItem
' Establece la variable al elemento encontrado.
Set itmX = ListView1.FindItem("Auto",,,lvwpartial)


Ejemplo del método FindItem

Este ejemplo llena un control ListView con el contenido de la tabla Publishers de la base de datos Biblio.mdb. Una matriz de controles con tres controles OptionButton también se llena con tres opciones para el método FindItem. Un CommandButton contiene el código para el método FindItem; cuando hace clic en el botón, se le pide que escriba la cadena que desea buscar y el método FindItem busca la cadena en el control ListView. Si la encuentra, el control se desplazará mediante el método EnsureVisible para mostrar el objeto ListItem encontrado. Para probar el ejemplo, coloque un control ListView, una matriz de controles con tres controles OptionButton y un control CommandButton en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el botón de comando.

Nota El ejemplo no se ejecutará a menos que agregue una referencia a la Biblioteca de objetos de Microsoft DAO 3.0 mediante el comando Referencias del menú Proyecto.

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega ColumnHeaders. El ancho de las columnas es el
   ' ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

   ListView1.BorderStyle = ccFixedSingle  ' Establece la propiedad BorderStyle.
   ListView1.View = lvwReport  ' Establece la vista Informe.
   Command1.Caption = "&Buscar elemento"

   ' Etiqueta los controles OptionButton con opciones
   ' de FindItem.
      Option1(0).Caption = "Texto"
      Option1(1).Caption = "Subelemento"
      Option1(2).Caption = "Etiqueta"
      ListView1.FindItem = 0  ' Establece la propiedad FindItem de                                     ' ListView como Text.

   ' Llena el control ListView con registros de base de datos.
   ' Crea variables de objeto para los objetos de acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla
   ' Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Mientras el registro no sea el último, agrega un objeto ListItem.
   ' Usa la referencia al nuevo objeto para establecer propiedades.
   ' Establece la propiedad Text como el campo Name (myRS!Name).
   ' Establece SubItem(1) como el campo Address (myRS!Address).
   ' Establece SubItem(7) como el campo Phone (myRS!Telephone).

   While Not myRs.EOF
      Dim itmX As ListItem   ' Una variable ListItem.
      Dim intCount As Integer   ' Una variable de contador.
      ' Utiliza el método Add para agregar un nuevo
      ' ListItem y establecer una variable de objeto a la
      ' nueva referencia. Usa la referencia para establecer propiedades.
      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
      intCount = intCount + 1 ' Incrementa el contador para la propiedad                               ' Tag.
      itmX.Tag = "ListItem " & intCount  ' Establece Tag con contador.

      ' Si el campo Address no es Null, establece
      ' SubItem 1 a Address.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address) ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece
      ' SubItem 2 a Phone.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext   ' Pasa al registro siguiente.
   Wend
End Sub

Private Sub Command1_Click()
   ' Método FindItem.
   ' Crea una variable entera llamada
   ' intSelectedOption para almacenar el índice del
   ' botón seleccionado
   ' Crea una variable de cadena llamada strFindMe. Usa
   ' el InputBox para almacenar la cadena que se debe
   ' encontrar en la variable.
   ' Usa el método FindItem para buscar la cadena. Option1
   ' se usa para cambiar el argumento FindItem que
   ' determina dónde buscar.

   Dim intSelectedOption as Integer
   Dim strFindMe As String
   If Option1(0).Value = True then
      strFindMe = InputBox("Buscar en " & Option1(0).Caption)
      intSelectedOption = lvwText
   End If
   If Option1(1).Value = True then
      strFindMe = InputBox("Buscar en " & Option1(1).Caption)
      intSelectedOption = lvwSubItem
   End If
   If Option1(2).Value = True then
      strFindMe = InputBox("Buscar en " & Option1(2).Caption)
      intSelectedOption = lvwTag
   End If

   ' El método FindItem devuelve una referencia al
   ' elemento hallado, por lo que deberá crear una
   ' variable de objeto y asignarle el elemento
   ' hallado.
   Dim itmFound As ListItem   ' Variable FoundItem.

   Set itmFound = ListView1. _
   FindItem(strFindMe, intSelectedOption, , lvwPartial)

   ' Si no se encuentra ningún ListItem, informa al usuario y
   ' sale. Si se encuentra un ListItem, se desplaza al
   ' control con el método EnsureVisible y
   ' selecciona el ListItem.
   If itmFound Is Nothing Then   ' Si no hay coincidencia, informa al                                     ' usuario y sale.
      MsgBox "No se ha encontrado ninguna coincidencia"
      Exit Sub
   Else
       itmFound.EnsureVisible    ' Desplaza ListView para mostrar el                                     ' ListItem hallado.
       itmFound.Selected = True   ' Selecciona el ListItem.
      ' Devuelve el enfoque al control para ver la selección.
       ListView1.SetFocus
   End If
End Sub

Private Sub ListView1_LostFocus()
   ' Cuando el control pierde el enfoque, restablece la
   ' propiedad Selected de cada ListItem a False.
   Dim i As Integer
   For i = 1 to ListView1.ListItems.Count
      ListView1.ListItems.Item(i).Selected = False
   Next i
End Sub


GetFirstVisible (Método)

Devuelve una referencia al primer objeto visible en el área interna de un control.

Sintaxis

objeto.GetFirstVisible()

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto en la lista Se aplica a.

Comentarios

Un control ListView puede contener más objetos ListItem de los que pueden verse en el área interna del control ListView. Puede usar la referencia devuelta por el método GetFirstVisible para determinar el primer objeto ListItem visible en la vista Lista o Informe.


Ejemplo del método GetFirstVisible

Este ejemplo llena un control ListView con el contenido de la tabla Publishers de la base de datos Biblio.mdb. Cuando hace clic en el control CommandButton, aparece el texto del primer elemento visible. Haga clic en los encabezados de columna para cambiar la propiedad SortKey y vuelva a hacer clic en CommandButton. Para probar el ejemplo, coloque un control ListView y otro CommandButton en el formulario y pegue el código en la sección Declaraciones del formulario.

Nota El ejemplo no funcionará a menos que agregue una referencia a la Biblioteca de objetos de Microsoft DAO 3.0 mediante el comando Referencias del menú Proyecto. Ejecute el ejemplo.

Private Sub Command1_Click()
   ' Crea una variable ListItem y establece la variable
   ' al objeto devuelto por el método GetFirstVisible.
   ' Usa la referencia para mostrar el texto del ListItem.
   Dim itmX As ListItem
   Set itmX = ListView1.GetFirstVisible
   MsgBox itmX.Text
End Sub

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega ColumnHeaders. El ancho de las columnas es el
   ' ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

   ListView1.BorderStyle = ccFixedSingle    ' Establece la propiedad                                                 ' BorderStyle.

   ' Crea variables de objeto para los objetos de acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros a la tabla
   ' Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Crea una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un
   ' objeto ListItem.
   ' Usa el campo Name para el texto del objeto ListItem.
   ' Usa el campo Address para el subelemento(1) del
   ' objeto ListItem.
   ' Usa el campo Phone para el subelemento(2) del
   ' objeto ListItem.

   While Not myRs.EOF

      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))

      ' Si el campo Address no es Null, establece
      ' SubItem 1 como el campo.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address) ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece el
      ' SubItem 2 como el campo.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext   ' Va al siguiente registro.
   Wend
   ListView1.View = lvwReport   ' Pasa al registro siguiente.
End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
   ListView1.SortKey = ColumnHeader.Index - 1
   ListView1.Sorted = True
End Sub


GetNumTicks (Método)

Devuelve el número de marcas entre las propiedades Min y Max de un control Slider.

Sintaxis

objeto.GetNumTicks

El marcador de posición objeto representa una expresión de objeto que da como resultado un control Slider.

Comentarios

Para cambiar el número de marcas, restablezca las propiedades Min, Max o TickFrequency.


Ejemplo del método GetNumTicks

En este ejemplo se muestra el número actual de marcas de un control Slider y luego se incrementa en 10 la propiedad Max. Para probar el ejemplo, coloque un control Slider en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el control Slider para obtener el número de marcas. Cada vez que haga clic en el control se incrementará el número de marcas.

Private Sub Slider1_Click()
   MsgBox Slider1.GetNumTicks
   Slider1.Max = Slider1.Max + 10
End Sub


GetVisibleCount (Método)

Devuelve el número de objetos Node que caben en el área interna de un control TreeView.

Sintaxis

objeto.GetVisibleCount

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El número de objetos Node viene determinado por la cantidad de líneas que caben en una ventana. El número total de líneas posibles lo determina el alto del control y la propiedad Size del objeto Font. En este número se cuenta el elemento situado al final de la lista y que sólo es visible parcialmente.

Puede usar la propiedad GetVisibleCount para asegurarse de que es visible un número mínimo de líneas que permita al usuario hacerse una idea de la jerarquía. Si no es visible este mínimo, puede restablecer el tamaño del control TreeView mediante la propiedad Height.

Si un determinado objeto Node debe ser visible, utilice el método EnsureVisible para desplazar y expandir el control TreeView.


Ejemplo del método GetVisibleCount

En este ejemplo se agregan varios objetos Node a un control TreeView. Al hacer clic en el formulario, el código utiliza el método GetVisibleCount para comprobar el número de líneas que hay visibles y luego amplía el control para mostrar todos sus objetos. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el formulario para ampliar el control.

Private Sub Form_Load()
   Dim nodX As Node
   Dim i as Integer
   TreeView1.BorderStyle = 1 ' Muestra el borde.
   For i = 1 to 20
      Set nodX = TreeView1.Nodes.Add(,,,"Nodo " & CStr(i))
   Next I
   TreeView1.Height = 1500 ' El control es pequeño para la comparación.
End Sub

Private Sub Form_Click()
   While Treeview1.GetVisibleCount < 20
      ' Aumenta el tamaño del control TreeView.
      TreeView1.Height = TreeView1.Height + TreeView1.Font.Size
   Wend
End Sub


HitTest (Método, controles ListView y TreeView)

Devuelve una referencia al objeto ListItem o Node situado en las coordenadas x e y. Se utiliza sobre todo en las operaciones de arrastrar y colocar para determinar si hay disponible en la ubicación actual un elemento de destino de colocación.

Sintaxis

objeto.HitTest (x As Single, y As Single)

La sintaxis del método HitTest consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
x,y | Las coordenadas de un objeto de destino, que será un objeto Node o ListItem.

Comentarios

Si no hay ningún objeto en las coordenadas especificadas, el método HitTest devuelve Nothing.

El método HitTest se utiliza casi siempre junto con la propiedad DropHighlight para resaltar un objeto cuando se arrastra el mouse sobre él. La propiedad DropHighlight requiere una referencia a un objeto específico para resaltarlo. Para determinar el objeto, puede usarse el método HitTest junto con un evento que devuelva las coordenadas x e y, como DragOver, como el siguiente código:

Private Sub TreeView1_DragOver _
(Source As Control, X As Single, Y As Single, State As Integer)
   Set TreeView1.DropHighlight = TreeView1.HitTest(X,Y)
End Sub

A continuación puede usar la propiedad DropHighlight en el evento DragDrop para obtener una referencia al último objeto sobre el que se ha colocado el control de origen, como se muestra en el código siguiente:

Private Sub TreeView1_DragDrop _
(Source As Control, x As Single, y As Single)
   ' DropHighlight devuelve una referencia al objeto sobre el que se ha colocado.
   Me.Caption = TreeView1.DropHighlight.Text
   ' Para liberar la referencia de DropHighlight, se
   ' establece a Nothing.
   Set TreeView1.DropHighlight = Nothing
End Sub

Observe que en el ejemplo anterior se establece a Nothing la propiedad DropHighlight después de completar el procedimiento. Esto es necesario para que desaparezca el efecto de resalte.


Ejemplo del método HitTest (Controles ListView y TreeView)

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un objeto Node, puede arrastrarlo hasta cualquier otro objeto Node. Para probar el ejemplo, coloque controles TreeView e ImageList en un formulario y pegue el código en su sección Declaraciones. Ejecute el ejemplo y arrastre los objetos Node para ver el resultado.

' Declara variables globales
Dim indrag As Boolean ' Indicador de operación arrastrar y colocar.
Dim nodX As Object ' Elemento arrastrado.

Private Sub Form_Load()
   ' Carga un mapa de bits en un control Imagelist.
   Dim imgX As ListImage
   Dim BitmapPath As String
   BitmapPath = "icons\mail\mail01a.ico"
   Set imgX = imagelist1.ListImages.Add(, , LoadPicture(BitmapPath))

   ' Inicializa el control TreeView y crea varios nodos.
   TreeView1.ImageList = imagelist1
   Dim nodX As Node   ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 1", 1)
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 2", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 1", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 2", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 3", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 4", 1)
   Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Secundario 5", 1)
   nodX.EnsureVisible ' Expande el árbol para mostrar todos los nodos.
End Sub

Private Sub TreeView1_MouseDown _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   Set nodX = TreeView1.SelectedItem ' Elemento arrastrado.
End Sub

Private Sub TreeView1_MouseMove _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = vbLeftButton Then ' Operación de arrastre.
      indrag = True ' Establece el indicador como verdadero.
      ' Establece el icono de arrastre con el método CreateDragImage.
      TreeView1.DragIcon = TreeView1.SelectedItem.CreateDragImage
      TreeView1.Drag vbBeginDrag ' Operación de arrastre.
   End If
End Sub

Private Sub TreeView1_DragDrop _
(Source As Control, x As Single, y As Single)
   If TreeView1.DropHighlight Is Nothing Then
      Set TreeView1.DropHighlight = Nothing
      indrag = False
      Exit Sub
   Else
      If nodX = TreeView1.DropHighlight Then Exit Sub
      Cls
      Print nodX.Text & " colocado en " & TreeView1.DropHighlight.Text
      Set TreeView1.DropHighlight = Nothing
      indrag = False
   End If
End Sub

Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
   If indrag = True Then
      ' Establece las coordenadas del mouse en DropHighlight.
      Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
   End If
End Sub


Overlay (Método)

Dibuja una imagen de una colección ListImages sobre otra y devuelve el resultado.

Sintaxis

objeto.Overlay (índice1, índice2)

La sintaxis del método Overlay consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice1 | Requerido. Un número entero (propiedad Index) o una cadena única (propiedad Key) que especifica la imagen que se va a superponer.
índice2 | Requerido. Un número entero (propiedad Index) o una cadena única (propiedad Key) que especifica la imagen que se va a dibujar sobre el objeto especificado en índice1. El color de la imagen que coincide con el valor de la propiedad MaskColor aparecerá transparente. Si no hay ningún color coincidente, la imagen se dibujará opaca sobre la otra imagen.

Comentarios

Use el método Overlay junto con la propiedad MaskColor para crear una imagen única a partir de dos imágenes distintas. El método Overlay impone un mapa de bits sobre otro para crear una tercera imagen compuesta. La propiedad MaskColor determina qué color de la imagen superpuesta es transparente.

El índice puede ser un número de índice o una clave. Por ejemplo, para superponer la segunda imagen de la colección a la primera:

Set Picture1.Picture = ImageList1.Overlay(1,2) ' Referencia por Index.
   ' O referencia por la propiedad Key.
Set Picture1.Picture = ImageList1.Overlay("Primera", "Segunda")


Ejemplo del método Overlay

Este ejemplo carga cinco objetos ListImage en un control ImageList y presenta dos imágenes cualesquiera en dos controles PictureBox. En cada PictureBox, seleccione una imagen que desee presentar, de uno de los dos controles ComboBox. Cuando haga clic en el formulario, el código usará el método Overlay para crear una tercera imagen que se mostrará en un tercer control PictureBox. Para probar el ejemplo, coloque un control ImageList, dos controles ComboBox y tres controles PictureBox en un formulario, y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el formulario.

Private Sub Form_Load()
   Dim X As ListImage
   ' Agrega 5 imágenes a una colección ListImages.
   Set X = ImageList1.ListImages. _
    Add(, , LoadPicture("icons\elements\moon05.ico"))
   Set X = ImageList1.ListImages. _
    Add(, , LoadPicture("icons\elements\snow.ico"))
   Set X = ImageList1.ListImages. _
    Add(, , LoadPicture("icons\writing\erase02.ico"))
   Set X = ImageList1.ListImages. _
    Add(, , LoadPicture("icons\writing\note06.ico"))
   Set X = ImageList1.ListImages. _
    Add(, , LoadPicture("icons\flags\flgfran.ico"))

   With combo1   ' Puebla el primer ComboBox.
      .AddItem "Luna"
      .AddItem "Copo de nieve"
      .AddItem "Lápiz"
      .AddItem "Nota"
      .AddItem "Bandera"
      .ListIndex = 0
   End With

   With combo2   ' Puebla el segundo ComboBox.
      .AddItem "Luna"
      .AddItem "Copo de nieve"
      .AddItem "Lápiz"
      .AddItem "Nota"
      .AddItem "Bandera"
      .ListIndex = 2
   End With

   Picture1.BackColor = vbWhite   ' Asigna el valor blanco a BackColor.
   Picture2.BackColor = vbWhite
   Picture3.BackColor = vbWhite
End Sub

Private Sub Form_Click()
   ' Superpone las dos imágenes y las presenta en PictureBox3.
   Set Picture3.Picture = ImageList1. _
    Overlay(combo1.ListIndex + 1, combo2.ListIndex + 1)
End Sub

Private Sub combo1_Click()
   ' Cambia PictureBox para reflejar la selección de ComboBox.
   Set Picture1.Picture = ImageList1. _
    ListImages(combo1.ListIndex + 1).ExtractIcon
End Sub

Private Sub combo2_Click()
   ' Cambia PictureBox para reflejar la selección de ComboBox.
   Set Picture2.Picture = ImageList1. _
    ListImages(combo2.ListIndex + 1).ExtractIcon
End Sub


RestoreToolbar (Método)

Restaura una barra de herramientas, creada con un control Toolbar, a su estado original después de personalizarla.

Sintaxis

objeto.RestoreToolbar(clave As String, subclave As String, valor As String)

La sintaxis del método RestoreToolbar consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un control Toolbar.
clave | Requerido. Un entero que especifica la clave del registro de Windows de donde el método recupera la información de Toolbar.
subclave | Requerido. Una cadena que especifica una subclave en el parámetro clave del registro.
valor | Requerido. Una expresión de cadena que identifica el valor de subclave donde se almacena la información de Toolbar en el registro.

Comentarios

Advertencia Cuando se utiliza el método RestoreToolbar, los botones de la barra de herramientas que no contengan objetos ImageList o ListImage desaparecerán. Un usuario puede volver a hacerlos visibles mediante el botón Restablecer del cuadro de diálogo Personalizar barra de herramientas. Puede usar el método Customize para llamar mediante un programa a este cuadro de diálogo para el usuario.

Para personalizar el control Toolbar en tiempo de ejecución, utilice en el código el método Customize o bien, si la propiedad AllowCustomize es True, el usuario puede personalizarla haciendo doble clic en el control.

El estado de la barra de herramientas se puede guardar en el registro mediante el método SaveToolbar. El método RestoreToolbar restaura el estado de una barra de herramientas leyendo del registro.

El siguiente código restaura el valor del control Toolbar para el usuario actual, suponiendo que lo ha guardado anteriormente con el método SaveToolbar.

Toolbar1.RestoreToolbar "AppName", "User1", "Toolbar1"


SaveToolbar (Método)

En tiempo de ejecución, guarda el estado de una barra de herramientas, creada con el control Toolbar, en el registro. No acepta argumentos con nombre.

Sintaxis

objeto.SaveToolbar(clave As String, subclave As String, valor As String)

El método SaveToolbar consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un control Toolbar.
clave | Requerido. Una expresión de cadena que especifica la clave del registro donde el método almacena la información de Toolbar.
subclave | Requerido. Una expresión de cadena que especifica una ubicación del registro bajo el parámetro clave anterior.
valor | Requerido. La información de Toolbar que se va a almacenar en subclave.

Comentarios

Para personalizar el control Toolbar en tiempo de ejecución, utilice el método Customize en el código o bien, si la propiedad AllowCustomize es True, el usuario puede personalizarla haciendo doble clic en el control.

Si la clave, subclave o valor que especifique no existe en el registro, se creará una nueva.

Para guardar más de una versión de la barra de herramientas, puede cambiar el parámetro subclave o valor. Esto hará que la barra de herramientas se escriba en otro sitio del registro. El siguiente código guarda dos estados distintos de una barra de herramientas después de haberla personalizado.

' Guarda los valores de User1
Toolbar1.SaveToolbar "AppName", "User1", "Toolbar1"

' Guarda los valores de User2
Toolbar1.SaveToolbar "AppName", "User2", "Toolbar1"

Después de que se produzca el evento Change del control Toolbar una vez que se haya personalizado la barra de herramientas, en la mayoría de los casos el código anterior puede colocarse en el evento Change de la barra de herramientas.


StartLabelEdit (Método)

Permite al usuario modificar una etiqueta.

Sintaxis

objeto.StartLabelEdit

El marcador de posición objeto es una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El método StartLabelEdit debe usarse para iniciar una operación de edición de etiqueta cuando el valor de la propiedad LabelEdit es 1 (Manual).

Cuando se invoca el método StartLabelEdit para un objeto, también se genera el evento BeforeLabelEdit.


Ejemplo del método StartLabelEdit

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un Node, haga clic en el formulario para comenzar a modificarlo. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un nodo y haga clic en el formulario.

Private Sub Form_Load
   Dim nodX As Node

   Set nodX = TreeView1.Nodes.Add(,,,"Da Vinci") ' Root
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Tiziano")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Rembrandt")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Goya")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"David")
   nodX.EnsureVisible ' Expande el árbol para ver todos los nodos.
End Sub

Private Sub Form_Click()
   ' Si el nodo seleccionado no es el raíz, se permite
   ' la edición.
   If TreeView1.SelectedItem.Index <> 1 Then
      TreeView1.StartLabelEdit
   End If
End Sub


Button (Objeto)

Un objeto Button representa un botón individual de la colección Buttons de un control Toolbar.

Comentarios

En cada objeto Button puede agregar texto, una imagen de mapa de bits o ambos desde un control ImageList y establecer propiedades para cambiar su estado y estilo.

En tiempo de diseño, utilice los botones Insertar botón y Quitar botón de la ficha Botones de la Página de propiedades del control Toolbar para insertar y quitar objetos Button de la colección Buttons. En tiempo de ejecución también puede agregar objetos Button mediante el método Add de la colección Buttons.

En tiempo de diseño y en tiempo de ejecución puede establecer las propiedades Caption, Image, Value, MixedState y ToolTipText para cambiar la apariencia de cada objeto Button.

Cuando se hace clic en un botón del control Toolbar se llama al evento ButtonClick con el objeto Button seleccionado como parámetro. Para realizar alguna acción cuando se haga clic en un botón, utilice las propiedades Index o Key en una instrucción Select Case como en este código de ejemplo:

Select Case Button.Key
   Case Is = "abrir" ' Abrir archivo.
   ' Agregue aquí código para abrir un archivo
   Case Is = "guardar" ' Guardar archivo.
   ' Agregue aquí código para guardar un archivo
   Case Else
   ' Si se hace clic en cualquier otro botón
End Select


ButtonMenu (Objeto)

El objeto ButtonMenu representa un menú que se despliega desde el objeto Button del control Toolbar.

Sintaxis

ButtonMenu

Comentarios

Los menús de botones sólo aparecen cuando la propiedad Style del objeto Button tiene el valor tbrDropdown.


ColumnHeader (Objeto), ColumnHeaders (Colección)

  • Un objeto ColumnHeader es un elemento de un control ListView que contiene texto de encabezado.

  • Una colección ColumnHeaders contiene uno o más objetos ColumnHeader.

Sintaxis

listaImágenes.ColumnHeaders

listaImágenes.ColumnHeaders(índice)

Las líneas de sintaxis anteriores hacen referencia a la colección y a los elementos individuales de la colección, respectivamente, de acuerdo con la sintaxis de colección estándar.

La sintaxis del objeto ColumnHeader y la colección ColumnHeaders consta de las siguientes partes:

Parte | Descripción
listaImágenes | Una expresión de objeto que da como resultado un control ListView.
índice | Un entero o una cadena que identifica de forma única un miembro de una colección de objetos. El entero es el valor de la propiedad Index; la cadena es el valor de la propiedad Key.

Comentarios

Los objetos ColumnHeader sólo se pueden ver en la vista Informe.

Puede agregar objetos ColumnHeader a un control ListView tanto en tiempo de diseño como en tiempo de ejecución.

Con un objeto ColumnHeader, un usuario puede:

  • Hacer clic para desencadenar el evento ColumnClick y ordenar los elementos basándose en ese elemento de datos.

  • Tomar el borde derecho del objeto y arrastrarlo para ajustar el ancho de la columna.

  • Ocultar objetos ColumnHeader en la vista Informe.

Siempre hay una columna en el control ListView, la Columna 1. Esta columna contiene los objetos ListItem propiamente dichos, no sus subelementos. La segunda columna (Columna 2) contiene subelementos. Por tanto, el número de objetos ColumnHeader siempre supera en uno al de subelementos y la propiedad SubItems del objeto ListItem es una matriz basada en 1 de tamaño ColumnHeaders.Count - 1.

El número de objetos ColumnHeader determina el número de subelementos que puede tener cada objeto ListItem del control. Cuando elimina un objeto ColumnHeader, también se eliminan todos los subelementos asociados a la columna. La matriz de subelementos de cada objeto ListItem se desplaza para actualizar los índices de ColumnHeader, lo que hace que cambien las propiedades SubItemIndex de los restantes encabezados de columna.


ComboItem (Objeto)

Un objeto ComboItem es un elemento de la parte de lista de un control ImageCombo. Los objetos ComboItem pueden mostrar texto, imágenes o ambos a la vez y aparecer con sangría en relación con los demás elementos de la lista.

Sintaxis

objeto.ComboItem

El marcador de posición objeto es una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El objeto ComboItem y su colección ComboItems correspondiente incluyen todos los elementos que se muestran en la parte de lista del control ImageCombo. Al estar los elementos de la lista almacenados en una colección, cada elemento puede tener asociadas varias propiedades. Se facilita de esta forma la tarea de asignar y administrar las imágenes asociadas con elementos de la lista.

Algunas de las propiedades que se encontraban en el cuadro combinado estándar (como List, ListIndex e ItemData) ya no son necesarias porque los elementos de la lista son objetos que forman parte de una colección.

Con un objeto ComboItem es posible:

  • Especificar el texto de un elemento.

  • Especificar un índice dentro de un control ImageList para asignar la imagen mostrada junto al elemento.

  • Especificar una imagen distinta cuando se selecciona el elemento en la lista.

  • Especificar la sangría de un elemento.

  • Asignar al elemento un valor Key único para usarlo como referencia al mismo, en lugar de su índice dentro de la colección.

El control ImageCombo no contiene ningún objeto ComboItem inicialmente. Debe agregar objetos mediante el método Add.


ListImage (Objeto), ListImages (Colección)

  • Un objeto ListImage es un mapa de bits de cualquier tamaño que se puede usar en otros controles.

  • Una colección ListImages es una colección de objetos ListImage.

Sintaxis

listaImágenes.ListImages

listaImágenes.ListImages(índice)

Estas líneas de sintaxis hacen referencia a la colección y a elementos individuales de la colección, respectivamente, según la sintaxis de colección estándar.

Las sintaxis del objeto ListImage y la colección ListImages constan de las siguientes partes:

Parte | Descripción
listaImágenes | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Un número entero o una cadena que identifica de forma inequívoca el objeto de la colección. El número entero es el valor de la propiedad Index; la cadena es el valor de la propiedad Key.

Comentarios

La colección ListImages es una colección basada en 1.

Puede agregar y quitar un objeto ListImage durante el diseño del programa mediante la ficha Imágenes de la página de propiedades del control ImageList, o en tiempo de ejecución mediante el método Add en los objetos ListImage.

Puede tener acceso a cada elemento de la colección mediante su índice o su clave única. Por ejemplo, para hacer referencia al tercer objeto ListImage de una colección, use la sintaxis siguiente:

Dim imgX As ListImage
   ' Referencia por número de índice.
Set imgX = ImageList.ListImages(3)
   ' O referencia por clave única.
Set imgX = ImageList1.ListImages("tercero") ' Suponiendo que Key es "tercero".
   ' O usa el método Item.
Set imgX = ImageList1.ListImages.Item(3)

A cada objeto ListImage le corresponde una máscara que se genera automáticamente mediante la propiedad MaskColor. Esta máscara no se usa directamente, sino que se aplica al mapa de bits original en operaciones de gráficos como los métodos Overlay y Draw.


ListItem (Objeto), ListItems (Colección)

  • Un objeto ListItem consta de texto, el índice de un icono asociado (objeto ListImage) y, en la vista Informe, una matriz de cadenas que representan los subelementos.

  • Una colección ListItems contiene uno o más objetos ListItem.

Sintaxis

listaImágenes.ListItems

listaImágenes.ListItems(índice)

Las líneas de sintaxis anteriores hacen referencia a la colección y a los elementos individuales de la colección, respectivamente, de acuerdo con la sintaxis de colección estándar.

La sintaxis del objeto ListItem y la colección ListItems consta de las siguientes partes:

Parte | Descripción
listaImágenes | Una expresión de objeto que da como resultado un control ListView.
índice | Un entero o una cadena que identifica de forma única a un miembro de una colección ListItem. El entero es el valor de la propiedad Index; la cadena es el valor de la propiedad Key.

Comentarios

Los objetos ListItem pueden contener texto e imágenes. Sin embargo, para usar imágenes debe hacer referencia a un control ImageList mediante las propiedades Icons y SmallIcons.

También puede cambiar la imagen con la propiedad Icon o SmallIcon.

El ejemplo siguiente muestra cómo agregar objetos ColumnHeaders y varios objetos ListItem con subelementos a un control ListView.

Private Sub Form_Load()
   Dim clmX As ColumnHeader
   Dim itmX As ListItem
   Dim i As Integer

   For i = 1 To 3
      Set clmX = ListView1.ColumnHeaders.Add()
      clmX.Text = "Col" & i
   Next i

   ' Agrega 10 elementos a la lista, todos con el
   ' mismo icono
   For i = 1 To 10
      Set itmX = ListView1.ListItems.Add()
      itmX.SmallIcon = 1
      itmX.Text = "ListItem " & i
      itmX.SubItems(1) = "Subelemento 1"
      itmX.SubItems(2) = "Subelemento 2"
   Next i
End Sub


ListSubItem (Objeto)

El objeto ListSubItem representa un subelemento de un control ListView.

Sintaxis

ListSubItem

Comentarios

El objeto ListSubItem reemplaza la matriz de cadenas SubItems que figuraba en versiones anteriores del control ListView.


Node (Objeto, colección Nodes)

  • Un objeto Node es un elemento de un control TreeView que puede contener imágenes y texto.

  • Una colección Nodes contiene uno o más objetos Node.

Sintaxis

treeview.Nodes

treeview.Nodes.Item(índice)

Las líneas de sintaxis anteriores hacen referencia a la colección y sus elementos individuales, respectivamente, de acuerdo con la sintaxis de colección estándar.

La sintaxis del objeto Node y de la colección Nodes consta de las siguientes partes:

Parte | Descripción
treeview | Una expresión de objeto que da como resultado un control TreeView.
índice | Un entero o una cadena que identifica unívocamente a un miembro de una colección Nodes. El valor entero es el valor de la propiedad Index, mientras que la cadena es el valor de la propiedad Key.

Comentarios

Los nodos pueden contener texto e imágenes. Sin embargo, para usar imágenes es necesario asociar un control ImageList mediante la propiedad ImageList.

Las imágenes pueden variar dependiendo del estado del nodo. Por ejemplo, un nodo seleccionado puede tener una imagen distinta de uno que no lo esté si establece la propiedad SelectedImage a una imagen del control ImageList asociado.


Panel (Objeto)

Un objeto Panel representa un panel individual de la colección Panels de un control StatusBar.

Comentarios

Un objeto Panel puede contener texto y un mapa de bits que pueden usarse para reflejar el estado de una aplicación.

Utilice la colección Panels para recuperar, agregar o quitar un único objeto Panel.

Para cambiar la apariencia del panel, cambie las propiedades del objeto Panel. Para modificar las propiedades en tiempo de diseño, puede cambiar las propiedades del objeto Panel en la ficha Paneles de la Página de propiedades. En tiempo de ejecución, puede cambiar las propiedades del objeto Panel en el código.


Tab (Objeto)

Un objeto Tab representa una ficha individual de la colección Tabs de un control TabStrip.

Comentarios

Para cada objeto Tab puede emplear varias propiedades con el fin de especificar su apariencia y también puede especificar su estado con la propiedad Selected.

En tiempo de diseño, use los botones Insertar ficha y Quitar ficha de la ficha Fichas en la Página de propiedades del control TabStrip para insertar y quitar fichas, y utilice los cuadros de texto para especificar cualquiera de estas propiedades para un objeto Tab: Caption, Image, ToolTipText, Tag, Index o Key. También puede especificar estas propiedades en tiempo de ejecución.

Use las propiedades Caption e Image, por separado o juntas, para etiquetar o poner un icono en una ficha.

  • Para usar la propiedad Caption, en el cuadro de texto Título en la Página de propiedades del control TabStrip, escriba el texto que desee mostrar en la ficha o en el botón en tiempo de ejecución.

  • Para usar la propiedad Image, ponga un control ImageList en el formulario y llene la colección ListImages con objetos ListImage, dándole a cada uno de ellos un número de índice y una clave opcional. En la ficha General de la Página de propiedades del control TabStrip, seleccione ese ImageList para asociarlo con el control TabStrip. En el cuadro de texto Image de la ficha Fichas, escriba el número de índice del objeto ListImage que debe aparecer en el objeto Tab.

Use la propiedad ToolTipText para mostrar temporalmente una cadena de texto en un pequeño cuadro rectangular en tiempo de ejecución cuando el cursor del usuario se posa sobre la ficha. Para establecer la propiedad ToolTipText en tiempo de diseño, active la casilla de verificación ShowTips en la ficha General y después escriba la cadena de información sobre herramientas en el cuadro de texto ToolTipText.

Para devolver una referencia a un objeto Tab que un usuario ha seleccionado, use la propiedad SelectedItem; para determinar si una ficha específica se ha seleccionado, use la propiedad Selected. Estas propiedades son útiles junto con el evento BeforeClick para comprobar o grabar datos asociados con la ficha seleccionada actualmente antes de mostrar la siguiente ficha seleccionada por el usuario.

Cada objeto Tab también tiene propiedades de sólo lectura que puede usar para hacer referencia a un único objeto Tab de la colección Tabs: Left, Top, Height y Width.


Alignment (Propiedad, objeto ColumnHeader)

Devuelve o establece la alineación del texto en un objeto ColumnHeader.

Sintaxis

objeto.Alignment [= entero]

La sintaxis de la propiedad Alignment consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto ColumnHeader.
entero | Un entero que determina la alineación, como se describe en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
lvwColumnLeft | 0 | (Predeterminado) Izquierda. Texto alineado a la izquierda.
lvwColumnRight | 1 | Derecha. Texto alineado a la derecha.
lvwColumnCenter | 2 | Centro. Texto centrado.


Alignment (Propiedad, objeto Panel)

Devuelve o establece la alineación del texto del título de un objeto.

Sintaxis

objeto.Alignment [= número]

La sintaxis de la propiedad Alignment consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objetode la lista Se aplica a.
número | Una constante o un valor que especifica el tipo de acción, como se describe en Valores.

Valores

Los valores para el objeto Panel número son:

Constante | Valor | Descripción
sbrLeft hdrLeft | 0 | (Predeterminado). El texto aparece alineado a la izquierda y a la derecha del mapa de bits.
sbrCenter hdrCenter | 1 | El texto aparece centrado y a la derecha de mapa de bits.
sbrRight hdrRight | 2 | El texto aparece alineado a la derecha y a la izquierda del mapa de bits.

Comentarios

Además de situar el texto, la propiedad Alignment especifica la posición del mapa de bits, como se describe en Valores. No hay ninguna forma de situar de forma independiente el mapa de bits en el panel.


Ejemplo de la propiedad Alignment (Objeto Panel)

En este ejemplo se agregan dos objetos Panel a un control StatusBar y se alinea el texto de cada panel con cada uno de los tres estilos disponibles. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Después ejecute el ejemplo.

Private Sub Form_Load()
    ' Declara variables.
    Dim pnlX As Panel
    Dim I As Integer

    For I = 1 To 2  ' Agrega dos paneles.
      StatusBar1.Panels.Add
    Next I

    For I = 1 To 3  ' Agrega una imagen a cada panel.
      Set pnlX = StatusBar1.Panels(I)
      Set pnlX.Picture = LoadPicture("Graphics\icons\comm\net12.ico")
      ' Establece AutoSize y MinWidth para que los
      ' paneles sean siempre visibles.
      pnlX.AutoSize = sbrSpring
      pnlX.MinWidth = 1
    Next I

    ' Establece los estilos y la alineación.
    With StatusBar1.Panels
      .Item(1).Text = "Izquierda"
      .Item(1).Alignment = sbrLeft ' Alineación a la izquierda.
      .Item(2).Text = "Centrado"
      .Item(2).Alignment = sbrCenter ' Alineación centrada.
      .Item(3).Text = "Derecha"
      .Item(3).Alignment = sbrRight ' Alineación a la derecha.
    End With
End Sub


AllowColumnReorder (Propiedad)

Devuelve o establece un valor que determina si el usuario puede volver a ordenar las columnas mediante el mouse (ratón).

Sintaxis

objeto.AllowColumnReorder [= booleano]

La sintaxis de la propiedad AllowColumnReorder consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el usuario puede volver a ordenar columnas, como se indica en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El usuario no puede volver a ordenar las columnas.
True | El usuario puede volver a ordenar las columnas.


AllowCustomize (Propiedad)

Devuelve o establece un valor que determina si el usuario final puede personalizar un control Toolbar con el cuadro de diálogo Personalizar barra de herramientas.

Sintaxis

objeto.AllowCustomize [= booleano]

La sintaxis de la propiedad AllowCustomize consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Toolbar.
booleano | Una constante o un valor que determina si el usuario puede personalizar un control Toolbar, como se describe en Valores.

Valores

Los valores para booleano son:

Valor | Descripción
True | Permite al usuario final invocar el cuadro de diálogo Personalizar barra de herramientas haciendo doble clic en un control Toolbar.
False | No se permite la personalización del control Toolbar con el cuadro de diálogo Personalizar barra de herramientas.

Comentarios

Si la propiedad AllowCustomize se establece a True, se invocará el cuadro de diálogo Personalizar barra de herramientas al hacer doble clic en un control Toolbar.

Personalizar barra de herramientas también se puede invocar con el método Customize.


Arrange (Propiedad, control ListView)

Devuelve o establece un valor que determina cómo se organizan los iconos en la vista Iconos o Iconos pequeños de un control ListView.

Sintaxis

objeto.Arrange [= valor]

La sintaxis de la propiedad Arrange consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
valor | Un entero o una constante que determina cómo se organizan los iconos grandes o pequeños, como se describe en Valores.

Valores

Estos son los valores admitidos para valor:

Constante | Valor | Descripción
lvwNone | 0 | (Predeterminado) Ninguno.
lvwAutoLeft | 1 | Izquierda. Los elementos se alinean automáticamente a lo largo de la parte izquierda del control.
lvwAutoTop | 2 | Superior. Los elementos se alinean automáticamente a lo largo de la parte superior del control.


Ejemplo de la propiedad Arrange

Este ejemplo agrega varios objetos y subelementos ListItem a un control ListView. Cuando haga clic en el control OptionButton, la propiedad Arrange se establecerá al valor Index del OptionButton. Para probar el ejemplo, coloque en un formulario una matriz de controles con tres controles OptionButton, un control ListView y dos controles ImageList en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en un OptionButton para cambiar la propiedad Arrange.

Private Sub Option1_Click(Index as Integer)
   ' Establece la propiedad Arrange como Option1.Index.
   ListView1.Arrange = Index
End Sub

Private Sub Form_Load()
   ' Etiqueta los controles OptionButton con opciones
   ' de organización.
      Option1(0).Caption = "Sin organizar"
      Option1(1).Caption = "Organización automática a la izquierda"
      Option1(2).Caption = "Organización automática en la parte superior"

   ' Declara variables para crear objetos ListView e ImageList.
   Dim i As Integer
   Dim itmX As ListItem   ' Variable de objeto para ListItems.
   Dim imgX As ListImage   ' Variable de objeto para ListImages.

   ' Agrega un objeto ListImage a un control ImageList.
   Set imgX = ImageList1.ListImages. _
   Add(,,LoadPicture("icons\mail\mail01a.ico"))

   ListView1.Icons = ImageList1   ' Asocia un control ImageList.

   ' Agrega diez objetos ListItem, cada uno con un Icono.
   For i = 1 To 10
      Set itmX = ListView1.ListItems.Add()
      itmX.Icon = 1   ' Icon.
      itmX.Text = "ListItem " & i
   Next i
End Sub


AutoSize (Propiedad, objeto Panel)

Devuelve o establece un valor que determina el ancho de un objeto Panel después de que se haya ajustado el tamaño de un control StatusBar.

Sintaxis

objeto.AutoSize [= número]

La sintaxis de la propiedad AutoSize consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Panel.
número | Una constante o un valor que especifica el tipo de acción, como se describe en Valores.

Valores

Los valores de número son:

Constante | Valor | Descripción
sbrNoAutoSize | 0 | (Predeterminado). Ninguna. No se ajusta automáticamente el tamaño. El ancho de Panel es el especificado por la propiedad Width.
SbrSpring | 1 | División. Cuando cambia el tamaño del formulario primario y hay espacio adicional disponible, los paneles con este valor se reparten el espacio y su tamaño aumenta. Sin embargo, el ancho de los paneles nunca será inferior al especificado en la propiedad MinWidth.
sbrContents | 2 | Contenido. El tamaño del objeto Panel se ajusta para adaptarlo al de su contenido; sin embargo, el ancho nunca sobrepasará el valor especificado por la propiedad MinWidth.

Comentarios

Los objetos Panel con el estilo Contenido tienen preferencia sobre los que tienen el estilo División. Esto significa que los objetos Panel con el estilo División se acortarán si un objeto Panel con estilo Contenido requiere más espacio.


Ejemplo de la propiedad AutoSize (Objeto Panel)

En este ejemplo se agregan dos objetos Panel a un control StatusBar y se establece Content en la propiedad AutoSize de todos los paneles. Al mover el cursor sobre los objetos del formulario, se muestran las coordenadas x e y junto con el valor de la propiedad Tag de cada control. Para probar el ejemplo, coloque un control StatusBar, un control PictureBox y un control CommandButton en un formulario y luego pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y mueva el cursor sobre los distintos controles.

Private Sub Form_Load()
   Dim pnlX As Panel
   ' Establece etiquetas largas para cada objeto.
   Form1.Tag = "Formulario del proyecto 1"
   Command1.Tag = "Botón de comando"
   Picture1.Tag = "Título de cuadro de imagen"
   StatusBar1.Tag = "Barra de estado de la aplicación"
   ' Establece Contents en AutoSize del primer panel.
   StatusBar1.Panels(1).AutoSize = sbrContents
   ' Agrega dos paneles más y establece en ellos
   ' Contenido.
   Set pnlX = StatusBar1.Panels.Add
   pnlX.AutoSize = sbrContents
   Set pnlX = StatusBar1.Panels.Add
   pnlX.AutoSize = sbrContents
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   ' Muestra la etiqueta del control en el panel 1 y las
   ' coordenadas x e y en los paneles 2 y 3. Como
   ' AutoSize = Contents, el primer panel cambiará de
   ' tamaño para ajustarse al texto
   StatusBar1.Panels(1).Text = Form1.Tag
   StatusBar1.Panels(2).Text = "X = " & x
   StatusBar1.Panels(3).Text = "Y = " & y
End Sub

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   StatusBar1.Panels(1).Text = Command1.Tag
   StatusBar1.Panels(2).Text = "X = " & x
   StatusBar1.Panels(3).Text = "Y = " & y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   StatusBar1.Panels(1).Text = Picture1.Tag
   StatusBar1.Panels(2).Text = "X = " & x
   StatusBar1.Panels(3).Text = "Y = " & y
End Sub

Private Sub StatusBar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   StatusBar1.Panels(1).Text = StatusBar1.Tag
   StatusBar1.Panels(2).Text = "X = " & x
   StatusBar1.Panels(3).Text = "Y = " & y
End Sub


Bevel (Propiedad, objeto Panel)

Devuelve o establece el estilo de bisel de un objeto Panel de un control StatusBar.

Sintaxis

objeto.Bevel [= valor]

La sintaxis de la propiedad Bevel consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Panel.
valor | Una constante o un valor que determina el estilo de bisel, como se describe en Valores.

Valores

Las opciones para valor son:

Constante | Valor | Descripción
sbrNoBevel | 0 | Ninguno. El objeto Panel no presenta bisel y el texto aparece directamente sobre la barra de estado.
sbrInset | 1 | (Predeterminado). Hacia adentro. El objeto Panel aparece hundido en la barra de estado.
sbrRaised | 2 | Hacia fuera. El objeto Panel aparece levantado sobre la barra de estado.


Ejemplo de la propiedad Bevel (Objeto Panel)

En este ejemplo se agregan dos objetos Panel a un control StatusBar y se especifica para cada uno de ellos un estilo de bisel distinto. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones del mismo. Después ejecute el ejemplo.

Private Sub Form_Load()
   Dim pnlX As Panel
   Dim I as Integer

   For I = 1 to 2
      Set pnlX = StatusBar1.Panels.Add() ' Agrega 2 paneles.
   Next I

   With StatusBar1.Panels
      .Item(1).Style = sbrCaps   ' BLOQ MAYÚS
      .Item(1).Bevel = sbrInset   ' Hacia adentro
      .Item(2).Style = sbrNum   ' BLOQ NÚM
      .Item(2).Bevel = sbrNoBevel   ' Sin bisel
      .Item(3).Style = sbrDate   ' Fecha
      .Item(3).Bevel = sbrRaised   ' Hacia afuera
   End With
End Sub


Bold (Propiedad, Windows Common Controls)

Devuelve o establece un valor que determina si el texto del objeto se muestra en negrita.

Sintaxis

objeto.Bold[= booleano]

La sintaxis de la propiedad Bold consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el texto está en negrita, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El texto no se muestra en negrita.
True | El texto se muestra en negrita.


ButtonHeight, ButtonWidth (Propiedades)

Devuelve o establece el alto y el ancho de los botones de un control Toolbar.

Sintaxis

objeto.ButtonHeight [= número]

objeto.ButtonWidth [= número]

Las sintaxis de las propiedades ButtonHeight y ButtonWidth constan de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Toolbar.
número | Una expresión numérica que especifica las dimensiones de todos los botones del control que tienen el estilo Button, Check o ButtonGroup.

Comentarios

ButtonHeight y ButtonWidth utilizan las unidades de escala del contenedor del control Toolbar, determinadas con la propiedad ScaleMode del contenedor.

De forma predeterminada, las propiedades ButtonWidth y ButtonHeight se actualizan automáticamente para dar cabida a la cadena de la propiedad Caption o la imagen de la propiedad Image del objeto Button.


ButtonMenus (Propiedad)

Devuelve una referencia a la colección ButtonMenus. Disponible sólo en tiempo de ejecución.

Sintaxis

objeto.ButtonMenus

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.


Buttons (Propiedad)

Devuelve una referencia a una colección de objetos Button de un control Toolbar.

Sintaxis

objeto.Buttons

El marcador de posición objeto es una expresión de objeto que da como resultado un control Toolbar.

Comentarios

Puede manipular objetos Button mediante métodos de colección estándar (por ejemplo, los métodos Add y Remove). Es posible tener acceso a cada elemento de la colección por su índice, el valor de la propiedad Index, o por una clave única, el valor de la propiedad Key.


Caption (Propiedad, objeto Tab)

Devuelve o establece el título que aparece en la ficha o el botón de un objeto Tab en un control TabStrip.

Sintaxis

objeto.Caption [= cadena]

La sintaxis de la propiedad Caption consta de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un objeto Tab.
Cadena | Una expresión de cadena que da como resultado un texto mostrado como título.

Comentarios

Puede establecer la propiedad Caption de un objeto Tab en el control TabStrip en tiempo de diseño o en tiempo de ejecución.

  • Tiempo de diseño: en la ficha Ficha de la Página de propiedades del control TabStrip, escriba la cadena de título en el cuadro de texto Caption.

  • Tiempo de ejecución: establezca el título como sigue:
    TabStrip1.Tabs(1).Caption = "Primera ficha"

    -O bien-

    TabStrip1.Tabs.Add 2, , "Segunda ficha"


Ejemplo de la propiedad Caption (Objeto Tab)

Este ejemplo establece la propiedad Caption para cada uno de los tres objetos Tab que agrega a un control TabStrip. Las cadenas de título son "Hora", "Fecha" y "Correo". Cada objeto Tab también muestra una imagen procedente de un control ImageList. Para probar este ejemplo, sitúe un control ImageList y un control TabStrip en un formulario. Ponga tres mapas de bits en el control ImageList. El control ImageList proporciona las imágenes para los objetos Tab. Pegue el siguiente código en el evento Load del objeto Form y ejecute el programa.

Private Sub Form_Load()
   Dim X As Integer
   ' Asocia un ImageList con el control TabStrip.
   Set TabStrip1.ImageList = ImageList1
   ' Establece los títulos.
   TabStrip1.Tabs(1).Caption = "Hora"
   TabStrip1.Tabs.Add 2, , "Fecha"
   TabStrip1.Tabs.Add 3, , "Correo"
   For X = 1 To TabStrip1.Tabs.Count
      ' Asocia una imagen con una ficha.
      TabStrip1.Tabs(X).Image = X
   Next X
End Sub


Checkboxes (Propiedad)

Devuelve o establece un valor que determina si se muestran las casillas de verificación.

Sintaxis

objeto.Checkboxes [= booleano]

La sintaxis de la propiedad Checkboxes consta de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si se muestran las casillas de verificación, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) No se muestran las casillas de verificación.
True | Se muestran las casillas de verificación.


Checked (Propiedad, Windows Common Controls)

Devuelve o establece un valor que determina si un elemento está habilitado (muestra una marca de verificación).

Sintaxis

objeto.Checked [= booleano]

La sintaxis de la propiedad Checked consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si un elemento está habilitado, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El elemento no está habilitado.
True | El elemento está habilitado.


Child (Propiedad, objeto Node)

Devuelve una referencia al primer elemento secundario de un objeto Node de un control TreeView.

Sintaxis

objeto.Child

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible hacer referencia a un objeto Node y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(TreeView1.SelectedItem.Index).Child
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También es posible establecer una variable de objeto al objeto Node referenciado, de esta forma:

Dim NodChild As Node
' Obtiene una referencia al secundario del nodo seleccionado.
Set NodChild = TreeView1.Nodes(TreeView1.SelectedItem.Index).Child
' Utiliza la referencia para realizar operaciones con el
' nodo secundario.
With nodChild
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Children (Propiedad)

Devuelve el número de objetos Node secundarios contenidos en un objeto Node.

Sintaxis

objeto.Children

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

La propiedad Children puede usarse para comprobar si un objeto Node tiene secundarios antes de realizar una operación que les afecte. Por ejemplo, el código siguiente comprueba con la propiedad Child si existen nodos secundarios antes de recuperar la propiedad Text del primer objeto Node.

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   If Node.Children > 0 Then
      MsgBox Node.Child.Text
   End If
End Sub


Ejemplo de la propiedad Children

En este ejemplo se agregan varios objetos Node a un control TreeView. El código comprueba cada objeto Node para averiguar si tiene nodos secundarios. En caso afirmativo, muestra el texto de estos nodos. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones del mismo. Ejecute el ejemplo, haga clic en un objeto Node para seleccionarlo y después haga clic en el formulario para ver el texto de sus nodos secundarios.

Option Explicit
Private Sub Form_Click()
   Dim strC As String
   Dim N As Integer
   If TreeView1.SelectedItem.Children > 0 Then ' Hay secundarios.

      ' Obtiene el texto del primer secundario y
      ' establece a N su índice.
      strC = TreeView1.SelectedItem.Child.Text & vbLF
      N = TreeView1.SelectedItem.Child.Index

      ' Mientras N no sea el índice del último nodo del
      ' mismo nivel que el secundario, obtiene el
      ' texto del secundario siguiente.
      While N <> TreeView1.SelectedItem.Child.LastSibling.Index
         strC = strC & TreeView1.Nodes(N).Next.Text & vbLF
         ' Restablece a N el índice del siguiente secundario.
         N = TreeView1.Nodes(N).Next.Index
      Wend
      ' Muestra el resultado.
      MsgBox "Los secundarios de " & TreeView1.SelectedItem.Text & _
      " son: " & vbLF & strC
   Else ' No tiene secundarios.
      MsgBox TreeView1.SelectedItem.Text & " no tiene secundarios"
   End If
End Sub

Private Sub Form_Load()
   TreeView1.BorderStyle = 1  ' Se asegura de que el borde sea visible
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"d","Fechas")
   Set nodX = TreeView1.Nodes.Add("d",tvwChild,"d89","1989")
   Set nodX = TreeView1.Nodes.Add("d",tvwChild,"d90","1990")

   ' Crea los secundarios del nodo 1989.
   Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"John")
   Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Brent")
   Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Eric")
   Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Ian")
   nodX.EnsureVisible ' Muestra todos los nodos.

   ' Crea los secundarios del nodo 1990.
   Set nodX = TreeView1.Nodes.Add("d90",tvwChild, ,"Randy")
   Set nodX = TreeView1.Nodes.Add("d90",tvwChild, ,"Ron")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub


Ejemplo de la propiedad Child

En este ejemplo se crean varios objetos Node. Al hacer clic en un objeto Node, el código utiliza primero la propiedad Children para determinar si el Node tiene nodos secundarios. En caso afirmativo, el título del formulario muestra el texto del nodo Child.

Option Explicit

Private Sub Form_Load()
' Este código crea un árbol con 3 objetos Node.
   TreeView1.Style = tvwTreelinesPlusMinusText ' Estilo 6.
   TreeView1.LineStyle = tvwRootLines    'Estilo de línea 1.

   ' Agrega varios objetos Node.
   Dim nodX As Node    ' Crea variable.

   Set nodX = TreeView1.Nodes.Add(, , "r", "Raíz")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, "c1", "Secundario 1")

   nodX.EnsureVisible ' Muestra todos los nodos.
   Set nodX = TreeView1.Nodes.Add("c1", tvwChild, "c2", "Secundario 2")
   Set nodX = TreeView1.Nodes.Add("c1", tvwChild, "c3", "Secundario 3")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   ' Si el nodo tiene secundarios, se muestra el texto
   ' del Node secundario.
   If Node.Children Then
      Caption = Node.Child.Text
   End If
End Sub


ClientHeight, ClientWidth, ClientLeft, ClientTop (Propiedades)

Devuelve las coordenadas del área interna (área de presentación) del control TabStrip. Es de sólo lectura en tiempo de ejecución y no está disponible en tiempo de diseño.

Sintaxis

objeto.ClientHeight

objeto.ClientWidth

objeto.ClientLeft

objeto.ClientTop

El marcador de posición objeto representa una expresión de objeto que da como resultado un control TabStrip.

Comentarios

En tiempo de ejecución, las propiedades de coordenada del cliente (ClientLeft, ClientTop, ClientHeight y ClientWidth) almacenan automáticamente las coordenadas del área interna del control TabStrip, que comparten todos los objetos Tab del control. Para que los controles asociados con un Tab específico aparezcan cuando se selecciona el objeto Tab, coloque los controles del objeto Tab dentro de un contenedor, como un control Frame, cuyo tamaño y posición sean iguales a las propiedades de coordenada del cliente. Para asociar un contenedor (y sus controles) con un objeto Tab, cree una matriz de controles, como una matriz de controles Frame.

Todas las propiedades de coordenada de cliente usan el modo de escala del formulario primario. Para colocar un control Frame de manera que quepa perfectamente en el área interna, use el siguiente código:

Frame1.Left = TabStrip1.ClientLeft
Frame1.Top = TabStrip1.ClientTop
Frame1.Width = TabStrip1.ClientWidth
Frame1.Height = TabStrip1.ClientHeight

Para crear el efecto de colocar una nueva ficha y su contenedor asociado en la parte superior cuando se selecciona la ficha:

  • Establezca el tamaño y la ubicación del contenedor en el área interna del control TabStrip como las propiedades de coordenada del cliente y

  • Use el método ZOrder para situar el control del contenedor de la ficha seleccionada al principio o al final del orden Z.


Ejemplo de las propiedades ClientHeight, ClientWidth, ClientLeft, ClientTop

El siguiente ejemplo demuestra el uso de las propiedades de coordenada del cliente (ClientLeft, ClientTop, ClientWidth y ClientHeight) junto con una matriz de controles Frame para mostrar objetos específicos de la ficha en el área interna del control TabStrip cuando se cambia de ficha. El ejemplo usa el método ZOrder para mostrar el control Frame apropiado y los objetos que contiene.

Para probar este ejemplo, sitúe un control TabStrip y una matriz de controles Frame de tres elementos en el formulario. En un control Frame, coloque un control CheckBox, en otro coloque un control CommandButton y en el tercero, coloque un control TextBox. Pegue el código siguiente en el evento Load del objeto Form y ejecute el programa. Haga clic en las distintas fichas para seleccionarlas, así como su contenido.

Private Sub Form_Load()
Dim Tabx As Object
Dim i As Integer
   ' Establece el título de la primera ficha como
   ' "Casilla."
   TabStrip1.Tabs(1).Caption = "Casilla"
   ' Agrega una segunda ficha con "Comando" como
   ' título.
   Set Tabx = TabStrip1.Tabs.Add(2, , "Comando")
   ' Agrega una tercera ficha con "Texto" como título.
   Set Tabx = TabStrip1.Tabs.Add(3, , "Texto")

   ' Alinea los contenedores de marco con el área
   ' interna del control TabStrip.
   For i = 0 To 2
      With TabStrip1
            Frame1(i).Move .ClientLeft, .ClientTop, _
            .ClientWidth, .ClientHeight
         End With
   Next
   ' Pone el contenedor de cuadro con imagen de la
   ' primera ficha en la parte superior al inicio.
   Frame1(0).ZOrder 0
End Sub

Private Sub TabStrip1_Click()
   Frame1(TabStrip1.SelectedItem.Index - 1).ZOrder 0
End Sub


ColumnHeaderIcons (Propiedad)

Devuelve o establece el control Imagelist que proporciona imágenes para la colección ColumnHeaders.

Sintaxis

objeto.ColumnHeaderIcons [=ListaImágenes]

La sintaxis de ColumnHeaderIcons consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
imagelist | Un control ImageList o una referencia de objeto a un control Imagelist.

Comentarios

Para establecer un icono para un objeto ColumnHeader, establezca su propiedad Icon a un índice, clave o referencia de objeto a un objeto ListImage en el control ImageList especificado por la propiedad ColumnHeaderIcons.


ColumnHeaders (Propiedad, control ListView)

Devuelve una referencia a una colección de objetos ColumnHeader.

Sintaxis

objeto.ColumnHeaders

El marcador de posición objeto representa una expresión de objeto que da como resultado un control ListView.

Comentarios

Puede manipular objetos ColumnHeader mediante métodos estándar de colección (por ejemplo, el método Remove). Se puede tener acceso a cada ColumnHeader de la colección mediante su índice o mediante una clave única, almacenada en la propiedad Key.


ComboItems (Propiedad)

Devuelve una referencia a la colección ComboItems de objetos ComboItem.

Sintaxis

objeto.ComboItems(Index)

La sintaxis de la propiedad ComboItems consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
Index | El índice o la clave de un miembro de la colección.


Controls (Propiedad, control Toolbar)

Devuelve una referencia a un colección de controles contenida en un objeto.

Sintaxis

objeto.Controls(índice)

objeto.Controls.Item(índice)

La sintaxis de la propiedad Controls consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Un valor que identifica a un miembro de la colección Controls.

Comentarios

La propiedad Controls es similar a la colección Controls de un objeto Form y se tiene acceso a ella de la misma forma. Por ejemplo, utilice el siguiente código para obtener la propiedad Top del segundo control de un control Toolbar:

MsgBox Toolbar1.Controls(2).Top

Con la propiedad Controls puede desplazarse por todos los controles de un objeto Tab o un control Toolbar y cambiar las propiedades de cada control como se muestra en el siguiente ejemplo:

Dim ctlX As Control
For Each ctlX In Toolbar1.Controls
   ctlX.Width = _
   Toolbar1.Width / Toolbar1.Controls.Count
Next

Nota La colección Controls se refiere a un control contenido en el control Toolbar, como un control ComboBox y no los objetos Button, que forman parte del propio control.


Description (Propiedad, objeto Button)

Devuelve o establece el texto de la descripción de un objeto Button, que se muestra en el cuadro de diálogo Personalizar barra de herramientas.

Sintaxis

objeto.Description [= cadena]

La sintaxis de la propiedad Description consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Button.
cadena | La cadena que se muestra en el cuadro de diálogo Personalizar barra de herramientas cuando se hace clic en el botón.

Comentarios

En tiempo de ejecución, el cuadro de diálogo Personalizar barra de herramientas puede invocarse mediante un doble clic en el control Toolbar o bien mediante programa usando el método Customize. En cualquier caso, cuando el usuario hace clic en un botón del cuadro de diálogo, se muestra una descripción del botón en la esquina inferior izquierda del cuadro de diálogo. El texto de esta descripción se establece con la propiedad Description.

Puede establecer el texto de Description al agregar un objeto Button, como sigue:

Dim btnX As Button
' Agrega un botón con la clave "guardar"
Set btnX = Toolbar1.Buttons.Add(,"guardar")
btnX.Description = "Guardar un archivo."


Ejemplo de las propiedades DisabledImageList, HotImageList, ImageList

En el ejemplo siguiente se demuestra el uso de las propiedades DisableImageList, HotImageList y ImageList. Observe que la propiedad Key es la misma en las tres listas de imágenes. El ejemplo asume que ya existen tres controles ImageList, llamados imgNormal, imgHot y imgDisabled, en un formulario.

Private Sub Form_Load()
   Dim str As String
   str = "D:\VB\Icons\Misc\" ' Cambia a la ubicación del directorio de gráficos.
   imgNormal.ListImages.Add Key:="face", _
   Picture:=LoadPicture(str & "Face02.ico")
   imgHot.ListImages.Add Key:="face", _
   Picture:=LoadPicture(str & "Face03.ico")
   imgDisabled.ListImages.Add Key:="face", _
   Picture:=LoadPicture(str & "Face01.ico")

   ' Define las propiedades ImageList, DisableImageList y HotImageList.
   With Toolbar1
      .ImageList = imgNormal
      .DisabledImageList = imgDisabled
      .HotImageList = imgHot
      .Buttons.Add Caption:="Triste", Image:="face", Style:=tbrCheck
      .Buttons.Add Caption:="Feliz", Image:="face", Style:=tbrCheck
      .Buttons.Add Caption:="Rostro", Image:="face", Style:=tbrCheck

      .Buttons(1).Enabled = False
      .Buttons(3).Value = tbrPressed
   End With
End Sub


DisabledImageList (Propiedad)

Devuelve o establece el control ImageList que se usará uso con imágenes deshabilitadas.

Sintaxis

objeto.DisabledImageList [= ListaDeImágenes]

La sintaxis de la propiedad DisabledImageList consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
imageList | Una referencia a un objeto que especifica qué control ImageList debe usarse para imágenes deshabilitadas.

Comentarios

El objeto Button sólo puede mostrar una imagen por cada botón. En tiempo de ejecución, la propiedad determina en primer lugar cómo debe dibujarse el botón (por ejemplo: normal, activo o deshabilitado) y a continuación utiliza la imagen de la lista de imágenes apropiada (ImageList, DisabledImageList o HotImageList) empleando como clave directamente la propiedad Image. Es importante comprender que las imágenes relacionadas deben tener nombres coherentes para que el control Toolbar pueda extraerlas de cada una de las tres listas de imágenes. Por ejemplo, si se emplean tres tipos de imágenes para un mismo botón, es necesario establecer para cada imagen la misma propiedad Index o Key que las otras dos, cada una dentro de su lista de imágenes respectiva.

Establecer a False la propiedad Enabled del control Toolbar no hará que se muestren las imágenes contenidas por DisabledImageList. En cambio, establezca la propiedad Enabled del objeto Button a False para mostrar una imagen de DisabledImageList. Para desactivar todos los botones, utilice el código siguiente:

Private Sub DisableAllButtons
   Dim b As Button
   For Each b In Toolbar1.Buttons
      b.Enabled = False
   Next
End Sub

Nota La imagen en el control ImageList asignada a la propiedad DisabledImageList debe tener el mismo tamaño que las imágenes en el control ImageList asignadas a la propiedad ImageList.


DropHighlight (Propiedad, controles ListView y TreeView)

Devuelve o establece una referencia a un objeto Node o ListItem resaltado con el color de resalte del sistema cuando se mueve el cursor a dicho objeto.

Sintaxis

objeto.DropHighlight [ = valor]

La sintaxis de la propiedad DropHighlight consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
valor | Un objeto Node o ListItem.

Comentarios

Normalmente, la propiedad DropHighlight se usa junto con el método HitTest en las operaciones de arrastrar y colocar. Al arrastrar el cursor sobre un objeto ListItem o Node, el método HitTest devuelve una referencia al objeto sobre el que se arrastra. A su vez, la propiedad DropHighlight se establece a ese objeto y simultáneamente devuelve una referencia al mismo. La propiedad DropHighlight resalta entonces el objeto con el color de resalte del sistema. El código siguiente establece la propiedad DropHighlight al objeto indicado por el método HitTest.

Private Sub TreeView1_DragOver _
(Source As Control, X As Single, Y As Single, State As Integer)
   Set TreeView1.DropHighlight = TreeView1.HitTest(X,Y)
End Sub

Posteriormente puede usar la propiedad DropHighlight en el evento DragDrop para obtener una referencia al último objeto sobre el que se ha colocado el control de origen, como se muestra en el código siguiente:

Private Sub TreeView1_DragDrop _
(Source As Control, x As Single, y As Single)
   ' DropHighlight devuelve una referencia al objeto sobre el
   ' que se ha colocado.
   Me.Caption = TreeView1.DropHighlight.Text
   ' Para liberar la referencia de DropHighlight, se
   ' establece a Nothing.
   Set TreeView1.DropHighlight = Nothing
End Sub

Observe que en el ejemplo anterior se establece a Nothing la propiedad DropHighlight después de completar el procedimiento. Esto es necesario para que desaparezca el efecto de resalte.


Ejemplo de la propiedad DropHighlight

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un objeto Node, puede arrastrarlo hasta cualquier otro objeto Node. Para probar el ejemplo, agregue un control TreeView y un control ImageList a un formulario y pegue el código en su sección Declaraciones. Ejecute el ejemplo y arrastre objetos Node para ver el resultado.

' Declara variables globales.
Dim indrag As Boolean 'Indicador de operación de arrastrar y colocar
Dim nodX As Object ' Elemento que se arrastra.

Private Sub Form_Load()
   ' Carga un mapa de bits en un control Imagelist.
   Dim imgX As ListImage
   Dim BitmapPath As String
   BitmapPath = "icons\mail\mail01a.ico"
   Set imgX = imagelist1.ListImages.Add(, , LoadPicture(BitmapPath))

   ' Inicializa el control TreeView y crea varios nodos.
   TreeView1.ImageList = imagelist1
   Dim nodX As Node   ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 1", 1)
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 2", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 1", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 2", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 3", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 4", 1)
   Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Secundario 5", 1)
   nodX.EnsureVisible ' Expande el árbol para mostrar todos los nodos.
End Sub

Private Sub TreeView1_MouseDown _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   Set nodX = TreeView1.SelectedItem ' Elemento arrastrado.
End Sub

Private Sub TreeView1_MouseMove _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = vbLeftButton Then ' Indica una operación de arrastrar.
      indrag = True ' Establece el indicador como verdadero.
      ' Establece el icono de arrastre con el método CreateDragImage.
      TreeView1.DragIcon = TreeView1.SelectedItem.CreateDragImage
      TreeView1.Drag vbBeginDrag ' Operación de arrastre.
   End If
End Sub

Private Sub TreeView1_DragDrop _
(Source As Control, x As Single, y As Single)
   If TreeView1.DropHighlight Is Nothing Then
      Set TreeView1.DropHighlight = Nothing
      indrag = False
      Exit Sub
   Else
      If nodX = TreeView1.DropHighlight Then Exit Sub
      Cls
      Print nodX.Text & " colocado en " & TreeView1.DropHighlight.Text
      Set TreeView1.DropHighlight = Nothing
      indrag = False
   End If
End Sub

Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
   If indrag = True Then
      ' Establece las coordenadas del mouse en DropHighlight.
      Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
   End If
End Sub


ExpandedImage (Propiedad)

Devuelve o establece el índice o el valor clave de un objeto ListImage en un control ImageList asociado. El objeto ListImage se muestra cuando un objeto Node está expandido.

Sintaxis

objeto.ExpandedImage[ = número]

La sintaxis de la propiedad ExpandedImage consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
número | Una expresión numérica o una expresión de cadena que especifican respectivamente el valor del índice o de la clave de la imagen que se va a mostrar.

Comentarios

Esta propiedad permite cambiar la imagen asociada a un objeto Node cuando el usuario hace doble clic en los objetos Node o cuando establece a True su propiedad Expanded.


Expanded (Propiedad)

Devuelve o establece un valor que determina si un objeto Node de un control TreeView se encuentra expandido o contraído.

Sintaxis

objeto.Expanded[= booleano]

La sintaxis de la propiedad Expanded consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el nodo está expandido o contraído.

Los valores válidos para booleano son:

Valor | Descripción
True | El objeto Node está expandido.
False | El objeto Node está contraído.

Comentarios

Puede usar la propiedad Expanded para expandir por programa un objeto Node. El código siguiente tiene el mismo efecto que hacer doble clic en el primer objeto Node:

TreeView1.Nodes(1).Expanded = True

Al expandir un objeto Node se genera el evento Expand.

Si un objeto Node no tiene nodos secundarios, el valor de esta propiedad se pasa por alto.


Ejemplo de la propiedad Expanded

En este ejemplo se agregan varios objetos Node a un control TreeView. Al hacer clic en el formulario se establece a True la propiedad Expanded de cada objeto Node. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el formulario para expandir todos los objetos Node.

Private Sub Form_Load()
   Dim nodX As Node
   Dim i as Integer
   TreeView1.BorderStyle = vbFixedSingle ' Muestra el borde.

   ' Crea un nodo raíz.
   Set nodX = TreeView1.Nodes.Add(,,"raíz","Raíz")

   For i = 1 to 5   ' Agrega 5 nodos secundarios.
      Set nodX = TreeView1.Nodes.Add(i,tvwChild,,"Nodo " & CStr(i))
   Next i
End Sub

Private Sub Form_Click()
   Dim I as Integer
   For I = 1 to TreeView1.Nodes.Count
      ' Expande todos los nodos.
      TreeView1.Nodes(i).Expanded = True
   Next I
End Sub


FirstSibling (Propiedad)

Devuelve una referencia al primer objeto del mismo nivel de un objeto Node en un control in a TreeView.

Sintaxis

objeto.FirstSibling

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El primer objeto del mismo nivel es el objeto Node que aparece en primer lugar en un nivel jerárquico de nodos. El objeto Node que aparezca en la primera posición dependerá de si los objetos Node de ese nivel están o no ordenados, lo cual se determina mediante la propiedad Sorted.

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, puede hacer referencia a un objeto Node y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(x).FirstSibling
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer una variable de objeto al Node referido, de esta forma:

Dim NodFirstSib As Node
' Obtiene una referencia al primer nodo del mismo nivel que el nodo x.
Set NodFirstSib = TreeView1.Nodes(x).FirstSibling
' Usa la referencia para realizar operaciones con el
' primer Node del mismo nivel.
With nodFirstSib
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad FirstSibling

En este ejemplo se agregan varios nodos a un control TreeView. La propiedad FirstSibling, junto con las propiedades Next y LastSibling, se utiliza para desplazarse por el nivel jerárquico de un objeto Node en el que se ha hecho clic. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en los distintos nodos para ver el resultado.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"papá","Miguel")
' Primer nivel.
   Set nodX = TreeView1.Nodes.Add(,,"mamá","Carolina")
   Set nodX = TreeView1.Nodes.Add(,,,"Alicia")

   ' María es el valor de FirstSibling.
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"María")
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Juana")
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Carmen")
   nodX.EnsureVisible ' Muestra todos los nodos.

   ' Gregorio es el valor de FirstSibling.
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Gregorio")
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Pedro")
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Benito")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim strText As String
   Dim n As Integer
   ' Establece a n el índice de FirstSibling.
   n = Node.FirstSibling.Index
   ' Coloca el texto de FirstSibling y un avance de línea
   ' en una variable de cadena.
   strText = Node.FirstSibling.Text & vbLF
   While n <> Node.LastSibling.Index
   ' Mientras n no sea el índice del último nodo del
   ' nivel, pasar al siguiente y colocar su texto en
   ' la variable de cadena.
      strText = strText & TreeView1.Nodes(n).Next.Text & vbLF
   ' Establece a n el índice del siguiente nodo.
      n = TreeView1.Nodes(n).Next.Index
   Wend
   MsgBox strText   ' Muestra el resultado.
End Sub


FlatScrollBar (Propiedad)

Devuelve o establece un valor que determina la apariencia de la barra de desplazamiento en el objeto.

Sintaxis

objeto.FlatScrollBar [= booleano]

La sintaxis de la propiedad FlatScrollBar consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica la apariencia de las barras de desplazamiento, como se indica en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) Se muestran barras de desplazamiento estándar.
True | El objeto muestra el estilo FlatScrollBar.


FullPath (Propiedad)

Devuelve la ruta completa del objeto Node referenciado en un control TreeView. Cuando asigne esta propiedad a una variable de tipo cadena, en la cadena se establece la ruta completa del nodo con el índice especificado.

Sintaxis

objeto.FullPath

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

La ruta completa es el resultado de concatenar el texto de la propiedad Text del objeto Node referenciado con los valores de las propiedades Text de todos sus predecesores. El valor de la propiedad PathSeparator determina el delimitador utilizado.


Ejemplo de la propiedad FullPath

En este ejemplo se agregan varios objetos Node a un control TreeView y se muestra la ruta completa de cada uno al seleccionarlo. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un nodo y haga clic en el formulario para mostrar la ruta completa del objeto Node.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,,"Raíz")
   Set nodX = TreeView1.Nodes.Add(1,tvwChild,,"Dir1")
   Set nodX = TreeView1.Nodes.Add(2,tvwChild,,"Dir2")
   Set nodX = TreeView1.Nodes.Add(3,tvwChild,,"Dir3")
   Set nodX = TreeView1.Nodes.Add(4,tvwChild,,"Dir4")
   nodX.EnsureVisible   ' Muestra todos los nodos.
   TreeView1.Style = tvwTreelinesText ' Estilo 4.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   MsgBox Node.FullPath
End Sub


FullRowSelect (Propiedad)

Devuelve o establece un valor que especifica si está seleccionada toda la fila.

Sintaxis

objeto.FullRowSelect [= booleano]

La sintaxis de la propiedad FullRowSelect consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si está seleccionada toda la fila, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) No está seleccionada toda la fila.
True | Está seleccionada toda la fila.

Comentarios

Cuando se aplica al control ListView, la propiedad FullRowSelect sólo es válida cuando la propiedad View tiene el valor lvwReport.


Ghosted (Propiedad)

Devuelve o establece un valor que determina si un objeto ListItem de un control ListView está no disponible (aparece atenuado).

Sintaxis

objeto.Ghosted [= booleano]

La sintaxis de la propiedad Ghosted consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto ListItem.
booleano | Una expresión booleana que especifica si el icono o el icono pequeño está atenuado, como se describe en Valores.

Valores

Los valores válidos para booleano son:

Valor | Descripción
True | El objeto ListItem no está disponible para el usuario.
False | (Predeterminado) El objeto ListItem está disponible.

Comentarios

La propiedad Ghosted suele emplearse para mostrar cuándo se corta o se desactiva por alguna razón un ListItem.

Cuando se selecciona un ListItem atenuado, la etiqueta se resalta, pero no así la imagen.


Ejemplo de las propiedades Ghosted, MultiSelect

Este ejemplo llena un control ListView con el contenido de la tabla Authors de la base de datos Biblio.mdb y le permite usar controles OptionButton para establecer opciones de la propiedad MultiSelect. Puede seleccionar cualquier elemento o presionar la tecla MAYÚS y seleccionar múltiples elementos. Al hacer clic en el CommandButton se asignará a la propiedad Ghosted de los elementos seleccionados el valor True. Para probar el ejemplo, coloque en un formulario una matriz de controles con dos controles OptionButton, un control ListView, un control ImageList y un control CommandButton y pegue el código en la sección Declaraciones del formulario.

Nota Este ejemplo no funcionará a menos que agregue una referencia a la biblioteca de objetos Microsoft DAO 3.0 mediante el comando Referencias del menú Proyecto. Ejecute el ejemplo, seleccione una opción MultiSelect haciendo clic en un OptionButton, haga clic en los elementos para seleccionarlos y, después haga clic en el CommandButton para atenuarlos.

Private Sub Command1_Click()
   Dim x As Object
   Dim i As Integer
   ' Atenúa el ListItem seleccionado.
If ListView1.SelectedItem Is Nothing Then Exit Sub
   For i = 1 To ListView1.ListItems.Count
      If ListView1.ListItems(i).Selected = True Then
         ListView1.ListItems(i).Ghosted = True
      End If
   Next i
End Sub

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega objetos ColumnHeaders. El ancho de las columnas es
   ' el ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

   ' Etiqueta controles OptionButton con las opciones de MultiSelect.
      Option1(0).Caption = "No MultiSelect"
      Option1(1).Caption = "MultiSelect"
      ListView1.MultiSelect = 1 ' Asigna a MultiSelect el valor True

   ListView1.BorderStyle = ccFixedSingle ' Establece la propiedad BorderStyle.
   ListView1.View = lvwReport   ' Establece la propiedad View el valor Report.
   ' Agrega una imagen a control ImageList.
   Dim imgX As ListImage
   Set imgX = ImageList1.ListImages. _
   Add(, , LoadPicture("icons\mail\mail01a.ico"))
   ListView1.Icons = ImageList1

   ' Crea variables de objeto para objetos de
   ' acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla
   ' Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Crea una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un
   ' objeto ListItem.
   ' Usa el campo Name para el texto del objeto ListItem.
   ' Usa el campo Address para el SubItem(1) del
   ' objeto ListItem
   ' Usa el campo Phone para el SubItem(2) del
   ' objeto ListItem.

   While Not myRs.EOF
      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
      itmX.Icon = 1  ' Establece el icono como icono ImageList.

      ' Si el campo Address no es Null, establece SubItem 1 como el             ' campo.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address)  ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece
      ' SubItem 2 como el campo.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext  ' Pasa al siguiente registro.
   Wend

   ListView1.View = lvwIcon  ' Muestra la vista Iconos.
   Command1.Caption = "Cortar"  ' Establece el título del CommandButton.
   ' Agrega un título al formulario.
   Me.Caption = "Seleccione cualquier elemento y haga clic en 'Cortar'."
End Sub

Private Sub Option1_Click(Index as Integer)
   ListView1.MultiSelect = Index
End Sub


GridLines (Propiedad, control ListView)

Devuelve o establece un valor que determina si se muestran líneas de cuadrícula en la vista Informe del control ListView.

Sintaxis

objeto.GridLines [= booleano]

La sintaxis de la propiedad GridLines consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica la apariencia de las líneas de cuadrícula, como se indica en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) No se muestran líneas de cuadrícula.
True | El control muestra líneas de cuadrícula.


HelpContextID (Propiedad, control Toolbar)

Devuelve o establece un número de contexto asociado para un objeto. Se utiliza para proporcionar Ayuda interactiva para su aplicación.

Nota La propiedad HelpContextID del control Toolbar activa un vínculo a la Ayuda desde el cuadro de diálogo Personalizar barra de herramientas, no desde el propio control. Este comportamiento es diferente del de otros controles de Visual Basic que contienen la propiedad HelpContextID.

Sintaxis

objeto.HelpContextID [= número]

La sintaxis de la propiedad HelpContextID consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a. Si se omite objeto, el formulario asociado al módulo de formulario activo se supone que es objeto.
número | Una expresión numérica que especifica el número de contexto del tema de Ayuda asociado a objeto.

Valores

Los valores para número son:

Valor | Descripción
0 | (Predeterminado) No se especifica ningún número de contexto.
> 0 | Un entero que especifica un número de contexto válido.

Comentarios

Para la Ayuda interactiva acerca de un objeto de su aplicación debe asignar el mismo número de contexto tanto a objeto como al tema de Ayuda asociado cuando compile el archivo de Ayuda.

Si ha creado un archivo de Ayuda del entorno operativo Microsoft Windows para su aplicación y establece la propiedad HelpFile de la aplicación, cuando un usuario presione la tecla F1, Visual Basic llamará automáticamente a la Ayuda y buscará el tema identificado por el número de contexto actual.

El número de contexto actual es el valor de HelpContextID para el objeto que tiene el enfoque. Si HelpContextID se establece a 0, Visual Basic buscará en el HelpContextID del contenedor del objeto y después en el contenedor del objeto, y así sucesivamente. Si no se encuentra un número de contexto actual distinto de cero, se pasará por alto la tecla F1.

Para un control Menu, HelpContextID suele ser de lectura y escritura en tiempo de ejecución. HelpContextID es de sólo lectura para los elementos de menú expuestos o proporcionados por Visual Basic para los complementos, como el comando Administrador de complementos del menú Complementos.

Nota Para generar un archivo de Ayuda se requiere el compilador de Ayuda de Microsoft Windows, que se incluye en la Edición Profesional de Visual Basic.


HelpFile (Propiedad, control Toolbar)

Especifica la ruta de acceso y el nombre de un archivo de Ayuda de Microsoft Windows utilizado por su aplicación para mostrar Ayuda o documentación en pantalla.

Nota La propiedad HelpFile del control Toolbar activa un vínculo a la Ayuda desde el cuadro de diálogo Personalizar barra de herramientas, no desde el propio control. Este comportamiento es diferente del de otros controles de Visual Basic que contienen la propiedad HelpFile.

Sintaxis

objeto.HelpFile[ = nombreArchivo]

La sintaxis de la propiedad HelpFile consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nombreArchivo | Una expresión de cadena que especifica la ruta de acceso y el nombre del archivo de Ayuda de Windows para su aplicación.

Comentarios

Si ha creado un archivo de Ayuda de Windows para su aplicación y establece la propiedad HelpFile de la aplicación, cuando un usuario presione la tecla F1, Visual Basic llamará automáticamente a la Ayuda. Si la propiedad HelpContextID contiene un número de contexto para el control o el formulario activo, la Ayuda mostrará el tema correspondiente al contexto de Ayuda actual; de lo contrario, mostrará la pantalla principal de contenido.

También puede usar la propiedad HelpFile para determinar qué archivo de Ayuda se muestra cuando un usuario solicita Ayuda desde el Examinador de objetos para un componente ActiveX.

Nota Para generar un archivo de Ayuda se requiere el compilador de Ayuda de Microsoft Windows, que se incluye en la Edición Profesional de Visual Basic.


HideColumnHeaders (Propiedad, control ListView)

Devuelve o establece si los objetos ColumnHeader de un control ListView están ocultos en la vista Informe.

Sintaxis

objeto.HideColumnHeaders [= booleano]

La sintaxis de la propiedad HideColumnHeaders consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
booleano | Una expresión booleana que especifica si los encabezados de columna son visibles en la vista Informe, como se describe en Valores.

Valores

Los valores válidos para booleano son:

Valor | Descripción
True | Los encabezados de columna no son visibles.
False | (Predeterminado) Los encabezados de columna son visibles.

Comentarios

Los objetos ListItem y cualquier subelemento relacionado permanecen visibles incluso aunque la propiedad HideColumnHeaders tenga el valor True.


Ejemplo de la propiedad HideColumnHeaders

Este ejemplo agrega varios objetos ListItem con subelementos a un control ListView. Cuando hace clic en el CommandButton, la propiedad HideColumnHeaders alterna entre True (-1) y False (0). Para probar el ejemplo, coloque controles ListView y CommandButton en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el control CommandButton para alternar el valor de la propiedad HideColumnHeaders.

Private Sub Command1_Click()
   ' Activa y desactiva la propiedad HideColumnHeaders.
   ListView1.HideColumnHeaders = Abs(ListView1.HideColumnHeaders) - 1
End Sub

Private Sub Form_Load()
   Dim clmX As ColumnHeader
   Dim itmX As ListItem
   Dim i As Integer
   Command1.Caption = "HideColumnHeaders"

   ' Agrega tres objetos ColumnHeader al control.
   For i = 1 To 3
      Set clmX = ListView1.ColumnHeaders.Add()
      clmX.Text = "Col" & i
   Next I

   ' Establece la vista Informe.
   ListView1.View = lvwReport

   ' Agrega 10 ListItems al control.
   For i = 1 To 10
      Set itmX = ListView1.ListItems.Add()
      itmX.Text = "ListItem " & i
      itmX.SubItems(1) = "Subitem 1"
      itmX.SubItems(2) = "Subitem 2"
   Next i
End Sub


HighLighted (Propiedad)

Devuelve o establece un valor que determina si un objeto se muestra resaltado.

Sintaxis

objeto.HighLighted [= booleano]

La sintaxis de la propiedad HighLighted consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el objeto está resaltado, como se indica en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado). El elemento no está resaltado.
True | El elemento está resaltado.


hImageList (Propiedad, control ImageList)

Devuelve un controlador a un control ImageList.

Sintaxis

objeto.hImageList

El marcador de posición objeto representa una expresión de objeto que da como resultado un control ImageList.

Comentarios

El entorno operativo Microsoft Windows identifica un control ImageList en una aplicación asignándole un controlador o hImageList. La propiedad hImageList se usa en las llamadas a la API de Windows. Muchas funciones de la API relacionadas con ImageList necesitan como argumento el hImageList de la ventana activa.

Nota Como el valor de esta propiedad puede cambiar cuando se está ejecutando el programa, no almacene nunca el valor de hImageList en una variable.


HotImageList (Propiedad)

Devuelve o establece el control ImageList que se usará con imágenes activas, que se muestran cuando el mouse se sitúa sobre una zona activa en la que se puede hacer clic y la propiedad Style está establecida a tbrTransparent.

Sintaxis

objeto.HotImageList [= ListaDeImágenes]

La sintaxis de la propiedad HotImageList consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
imageList | Una referencia a un objeto que especifica qué control ImageList debe usarse para imágenes activas.

Comentarios

El objeto Button sólo puede mostrar una imagen por cada botón. En tiempo de ejecución, la propiedad determina en primer lugar cómo debe dibujarse el botón (por ejemplo: normal, activo o deshabilitado) y a continuación utiliza la imagen de la lista de imágenes apropiada (ImageList, DisabledImageList o HotImageList) empleando como clave directamente la propiedad Image. Es importante comprender que las imágenes relacionadas deben tener nombres coherentes para que el control Toolbar pueda extraerlas de cada una de las tres listas de imágenes. Por ejemplo, si se emplean tres tipos de imágenes para un mismo botón, es necesario establecer para cada imagen la misma propiedad Index o Key que las otras dos, cada una dentro de su lista de imágenes respectiva.


HotTracking (Propiedad)

Devuelve un valor que determina si está activado el resalte sensible al puntero del ratón.

Sintaxis

objeto.HotTracking

El marcador de posición objeto es una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Valores devueltos

Los valores devueltos son:

Valor | Descripción
True | Está activado el seguimiento completo. Los títulos de los encabezados se resaltan cuando el puntero del mouse (ratón) pasa por ellos.
False | (Predeterminado) El objeto HeaderItem no responde al movimiento del mouse a menos que se haga clic en un botón del mismo.

Comentarios

El seguimiento completo es una característica que proporciona información al usuario cuando el puntero del mouse pasa sobre un control. Con HotTracking establecido a True, el control responde al movimiento del mouse resaltando el encabezado sobre el que está posicionado el puntero.


HoverSelection (Propiedad)

Devuelve o establece un valor que determina si se seleccionará un objeto ListItem cuando el puntero del mouse se sitúe encima del mismo.

Sintaxis

objeto.HoverSelection [= booleano]

La sintaxis de la propiedad HoverSelection consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el objeto está seleccionado, como se indica en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado). No se produce ninguna selección.
True | El elemento queda seleccionado cuando el puntero del mouse se sitúa unos segundos encima de éste.


Icon (Propiedad, Windows Common Controls)

Devuelve o establece un icono que será mostrado por el objeto.

Sintaxis

objeto.Icon [=icono]

La propiedad Icon consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
icon | El valor de la propiedad Key o Index de un objeto ListImage.

Comentarios

Para establecer un icono para un objeto, debe llenar un control ImageList con objetos ListImage (cada una representando una imagen) y debe establecer la propiedad apropiada al control ImageList. La propiedad Icon puede establecerse entonces a la propiedad Key o Index de un objeto ListImage.


ColumnHeaderIcons, ejemplo de la propiedad Icon

El ejemplo establece la propiedad ColumnHeaderIcons de un objeto ImageList, establece la propiedad Icon al Key de un objeto ListImage.

Option Explicit
Private Sub Form_Load()
   ' Asume un control ImageList que contenga al menos una imagen.
   Dim c As ColumnHeader
   Dim i As Integer

   For i = 1 To 4 ' Crear cuatro objetos ColumnHeader.
      ListView1.ColumnHeaders.Add , , "Col " & i
   Next I

   ListView1.View = lvwReport

   ImageList1.ListImages(1).Key = "Key1" ' Establecer la propiedad Key de ListImage.
   ListView1.ColumnHeaderIcons = ImageList1
   For Each c In ListView1.ColumnHeaders
      c.Icon = "Key1"
   Next
End Sub


ImageHeight, ImageWidth (Propiedades)

  • La propiedad ImageHeight devuelve o establece el alto de los objetos ListImage en un control ImageList.

  • La propiedad ImageWidth devuelve o establece el ancho de los objetos ListImage en un control ImageList.

Sintaxis

objeto.ImageHeight

objeto.ImageWidth

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El alto y el ancho se miden en píxeles.

Antes de agregar ningún objeto ListImage al control, puede establecer las dos propiedades ImageHeight e ImageWidth. Sin embargo, una vez que se ha agregado un objeto ListImage, no podrán cambiarse las propiedades.

Importante Cuando el control ImageList está enlazado a otro control común de Windows, todas las imágenes de la colección ListImages, sin importar su tamaño, se mostrarán en el segundo control enlazado con el tamaño especificado por las propiedades ImageHeight y ImageWidth.

Nota Puede usar el control ImageList con cualquier control estableciendo la propiedad Picture del segundo control al objeto Picture de cualquier imagen contenida en el control ImageList. Sin embargo, el tamaño de la imagen mostrada no se verá afectado por las propiedades ImageHeight y ImageWidth. En otras palabras, el segundo control mostrará la imagen con su tamaño original.


Ejemplo de las propiedades ImageHeight, ImageWidth

Este ejemplo carga un icono en un control ImageList y usa la imagen en un control ListView. Cuando el usuario hace clic en el formulario, el código usa la propiedad ImageHeight para ajustar el alto del control ListView al tamaño del objeto ListImage. Para probar el ejemplo, coloque los controles ImageList y ListView en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo y haga clic en el formulario.

Private Sub Form_Load()
   ' Crea variables para los objetos ImageList y ListView.
   Dim imgX As ListImage
   Dim itmX As ListItem

   Form1.ScaleMode = vbPixels ' Asegura que ScaleMode está en píxeles.

   ListView1.BorderStyle = FixedSingle ' Muestra el borde.
   ' Acorta el control ListView para que el contraste posterior
   ' sea más obvio.
   ListView1.Height = 50

   ' Coloca un mapa de bits grande en ImageList.
   Set imgX = ImageList1.ListImages. _
   Add(,, LoadPicture("bitmaps\gauge\vert.bmp"))

   ListView1.Icons = ImageList1 ' Establece la propiedad Icons.

   ' Agrega un elemento al control ListView.
   Set itmX = ListView1.ListItems.Add()
   itmX.Icon = 1   ' Establece la propiedad Icon para
                  ' el ListImage 1 de ImageList.
   itmX.Text = "Termómetro"   ' Establece el texto del objeto
                              ' ListView ListItem.
End Sub

Private Sub Form_Click()
   Dim strHW As String

   strHW = "Alto: " & ImageList1.ImageHeight & _
   "   Ancho: " & ImageList1.ImageWidth
   caption = strHW   ' Muestra las dimensiones.
   ' Hace más grande ListView para dar cabida a la imagen más alta.
   ListView1.Height = ImageList1.ImageHeight + 50
End Sub


Indentation (Propiedad)

Devuelve o establece el ancho de la sangría de los objetos de un control.

Sintaxis

objeto.Indentation[ = número]

La sintaxis de la propiedad Indentation consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
número | Una expresión numérica que especifica el ancho que se desplaza cada objeto.

Comentarios

Para el control ImageCombo y el objeto ComboItem, cada ancho de sangría es de 10 píxeles.

Si modifica la propiedad Indentation en tiempo de ejecución, el control TreeView vuelve a dibujarse para reflejar el nuevo ancho. El valor de esta propiedad no puede ser negativo.


Ejemplo de la propiedad Indentation

En este ejemplo se agregan varios objetos Node a un control TreeView, cuya propiedad Indentation se muestra en el título del formulario. Un control OptionButton proporciona valores alternativos para el ancho de Indentation. Para probar el ejemplo, coloque un control TreeView y una matriz de tres controles OptionButton en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en un control OptionButton para cambiar el valor de la propiedad Indentation.

Private Sub Form_Load()
   ' Etiqueta los controles OptionButton con las opciones de Indentation.
   Option1(0).Caption = "250"
   Option1(1).Caption = "500"
   Option1(2).Caption = "1000"

   ' Selecciona la primera opción y establece la sangría inicialmente a 250
   Option1(0).Value = True
   Treeview1.Indentation = 250

   Dim nodX As Node
   Dim i As Integer

   Set nodX = TreeView1.Nodes.Add(,,,CStr(1)) ' Agrega el primer nodo.

   For i = 1 To 6   ' Agrega 6 nodos.
      Set nodX = TreeView1.Nodes.Add(i,tvwChild,,CStr(i + 1))
   Next i

   nodX.EnsureVisible   ' Se asegura de que todos los nodos sean visibles.
   Form1.Caption = "Sangría = " & TreeView1.Indentation
End Sub

Private Sub Option1_Click(Index as Integer)   ' Cambia el valor de Indentation según ComboBox.
   TreeView1.Indentation = Val(Option1(Index).Caption)
   Form1.Caption = "Sangría = " & TreeView1.Indentation
End Sub


LabelEdit (Propiedad)

Devuelve o establece un valor que determina si el usuario puede modificar las etiquetas de los objetos ListItem o Node de un control ListView o TreeView.

Sintaxis

objeto.LabelEdit [ = entero]

La sintaxis de la propiedad LabelEdit consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Un entero que determina si puede modificarse la etiqueta de un objeto Node o ListItem, como se especifica en Valores.

Valores

Los valores válidos para entero son:

Constante | Valor | Descripción
ListView: lvwAutomatic TreeView: tvwAutomatic | 0 | (Predeterminado) Automático. Se genera el evento BeforeLabelEdit cuando el usuario hace clic en la etiqueta de un nodo seleccionado.
ListView: lvwManual TreeView: tvwManual | 1 | Manual. El evento BeforeLabelEdit sólo se genera al invocar el método StartLabelEdit.

Comentarios

La edición de la etiqueta de un objeto se inicia al hacer clic en un objeto seleccionado(si la propiedad LabelEdit está establecida a Automatic). Es decir, el primer clic en un objeto lo selecciona y un segundo clic (simple) inicia la operación de edición de la etiqueta.

La propiedad LabelEdit, junto con el método StartLabelEdit, permite determinar por programa qué etiquetas se pueden modificar y cuándo hacerlo. Cuando LabelEdit tiene el valor 1, no puede modificarse ninguna etiqueta, a menos que se invoque el método StartLabelEdit. Por ejemplo, el código siguiente permite al usuario modificar la etiqueta de un objeto Node haciendo clic en un botón de comando:

Private Sub Command1_Click()
   ' Determina si está seleccionado el nodo correcto.
   If TreeView1.SelectedItem.Index = 1 Then
      TreeView1.StartLabelEdit ' Permite al usuario iniciar la edición.
   End If
End Sub


Ejemplo de la propiedad LabelEdit

En este ejemplo se inicia la edición de una etiqueta al hacer clic en el botón de comando. Así se permite modificar los objetos Node que no sean el nodo raíz. El valor de la propiedad LabelEdit debe ser Manual. Para probar el ejemplo, agregue un control TreeView y un control CommandButton a un formulario y pegue el código en su sección Declaraciones. Ejecute el ejemplo, seleccione un nodo para su edición y haga clic en el CommandButton.

Private Sub Form_Load()
   Dim nodX As Node
   Dim i As Integer
   TreeView1.LabelEdit = tvwManual   ' Establece el valor Manual.
   Set nodX = TreeView1.Nodes.Add(,,," Nodo 1")   ' Agrega el primer nodo.

   For i = 1 to 5   ' Agrega 5 nodos.
      Set nodX = TreeView1.Nodes.Add(i,tvwChild,,"Nodo " & CStr(i + 1))
   Next I

   nodX.EnsureVisible   ' Muestra todos los nodos.
End Sub

Private Sub Command1_Click()
   ' Invoca el método StartLabelEdit para el nodo
   ' seleccionado, desencadenando así el evento
   ' BeforeLabelEdit.
   TreeView1.StartLabelEdit
End Sub

Private Sub TreeView1_BeforeLabelEdit (Cancel as Integer)
   ' Si el nodo seleccionado es el raíz, se cancela la edición.
   If TreeView1.SelectedItem Is TreeView1.SelectedItem.Root Then
      Cancel = True
   End If
End Sub

Private Sub TreeView1_AfterLabelEdit _
(Cancel As Integer, NewString As String)
   ' Supone que el usuario ha escrito texto y ha presionado ENTRAR.
   ' Cualquier cadena no vacía es válida.
   If Len(NewString) = 0 Then
      Cancel = True
   End If
End Sub


LabelWrap (Propiedad, control ListView)

Devuelve o establece un valor que determina si se produce o no ajuste de línea en las etiquetas cuando un control ListView está en la vista Iconos.

Sintaxis

objeto.LabelWrap [= booleano]

La sintaxis de la propiedad LabelWrap consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
booleano | Una expresión booleana que especifica si se ajustan las etiquetas, como se describe en Valores.

Valores

Los valores válidos para booleano son:

Valor | Descripción
True | (Predeterminado) Las etiquetas se ajustan.
False | Las etiquetas no se ajustan.

Comentarios

La longitud de la etiqueta se determina estableciendo el espaciado de icono en el Panel de control. En Windows NT, utilice la opción Escritorio. En Windows 95, use la ficha Apariencia en el subprograma Pantalla del Panel de control.


LastSibling (Propiedad)

Devuelve una referencia al último nodo del mismo nivel que un objeto Node en un control TreeView.

Sintaxis

objeto.LastSibling

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El último nodo del mismo nivel es el objeto Node que aparece en último lugar en un nivel jerárquico de nodos. El objeto Node que aparezca realmente en la última posición dependerá de si los nodos del nivel están ordenados, lo cual se determina mediante la propiedad Sorted. Para ordenar los objetos Node en el primer nivel, establezca a True la propiedad Sorted del nodo Parent, como se muestra en el código siguiente:

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Node.Parent.Sorted = True
End Sub

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible referirse a un nodo y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(x).LastSibling
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer en una variable de objeto el Node referido, de esta forma:

Dim NodLastSib As Node
' Obtiene una referencia al último nodo del mismo nivel que Nodo x.
Set NodLastSib = TreeView1.Nodes(x).LastSibling
' Usa la referencia para realizar operaciones con el nodo del mismo nivel.
With nodLastSib
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad LastSibling

En este ejemplo se agregan varios objetos Node a un control TreeView. La propiedad LastSibling, junto con las propiedades Next y FirstSibling, se utiliza para desplazarse por el nivel jerárquico de un objeto Node en el que se ha hecho clic. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en los distintos nodos para ver el resultado.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"papá","Miguel")
   Szet nodX = TreeView1.Nodes.Add(,,"mamá","Carolina")
   ' Alicia es el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add(,,,"Alicia")

   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"María")
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Juana")
   ' Carmen es el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Carmen")
   nodX.EnsureVisible ' Muestra todos los nodos.

   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Gregorio")
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Pedro")
   ' Benito es el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Benito")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim strText As String
   Dim n As Integer
   ' Establece a n el índice de FirstSibling.
   n = Node.FirstSibling.Index
   ' Coloca el texto de FirstSibling y un avance de
   ' línea en una variable de cadena.
   strText = Node.FirstSibling.Text & vbLF
   While n <> Node.LastSibling.Index
   ' Mientras n no sea el índice del último objeto de
   ' ese nivel, pasar al siguiente y poner su texto
   ' en la variable de cadena
      strText = strText & TreeView1.Nodes(n).Next.Text & vbLF
   ' Establece a n el índice del siguiente nodo.
      n = TreeView1.Nodes(n).Next.Index
   Wend
   MsgBox strText ' Muestra el resultado.
End Sub


LineStyle (Propiedad)

Devuelve o establece el estilo de las líneas que aparecen entre los objetos Node.

Sintaxis

objeto.LineStyle [ = número]

La sintaxis de la propiedad LineStyle consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
número | Un valor o una constante que especifica el estilo de línea, como se indica en Valores.

Valores

Los valores válidos para número son:

Constante | Valor | Descripción
tvwTreeLines | 0 | (Predeterminado) Líneas de árbol. Muestra líneas entre los nodos del mismo nivel y su nodo primario.
tvwRootLines | 1 | Líneas de raíz. Además de las líneas entre los nodos del mismo nivel y su nodo primario, se muestran líneas entre los nodos raíz.

Comentarios

En la propiedad Style debe establecer un estilo que incluya líneas de árbol.


Ejemplo de las propiedades LineStyle, Style

En este ejemplo se agregan varios objetos Node con imágenes a un control TreeView. Puede modificar las propiedades LineStyle y Style si selecciona los estilos alternativos en dos matrices de controles OptionButton. Para probar el ejemplo, coloque un control TreeView, un control ImageList y dos matrices de controles OptionButton (una con dos botones y otra con ocho) en un formulario y pegue el código en la sección Declaraciones del mismo. Ejecute el ejemplo y haga clic en cualquier OptionButton para cambiar las propiedades LineStyle y Style.

Private Sub Form_Load()
   ' Agrega una imagen al control ImageList.
   Dim imgX As ListImage
   Set imgX = ImageList1.ListImages. _
   Add(,,LoadPicture("bitmaps\outline\leaf.bmp"))

   TreeView1.ImageList = ImageList1 ' Inicializa ImageList.

   ' Etiqueta los controles OptionButton con las opciones de estilos de líneas.
   Option1(0).Caption = "Líneas de árbol"
   Option1(1).Caption = "Líneas de raíz"

   ' Selecciona la primera opción y establece LineStyle a TreeLines inicialmente
   Option1(0).Value = True
   Treeview1.LineStyle = tvwTreeLines

   ' Etiqueta los controles OptionButton con las opciones de Style.
   Option2(0).Caption = "Sólo texto"
   Option2(1).Caption = "Imagen y texto"
   Option2(2).Caption = "Más/menos y texto"
   Option2(3).Caption = "Más/menos, imagen y texto"
   Option2(4).Caption = "Líneas y texto"
   Option2(5).Caption = "Líneas, imagen y texto"
   Option2(6).Caption = "Líneas, más/menos y texto"
   Option2(7).Caption = "Líneas, más/menos, imagen y texto"

   ' Selecciona la última opción y establece el estilo inicial
   Option2(7).Value = True
   Treeview1.Style = tvwTreelinesPlusMinusPictureText

   Dim nodX As Node
   Dim i as Integer
   ' Crea el nodo raíz.
   Set nodX = TreeView1.Nodes.Add(,,,"Nodo " & "1",1)

   For i = 1 to 5   ' Agrega 5 nodos.
      Set nodX = TreeView1.Nodes. _
      Add(i,tvwChild,,"Nodo " & CStr(i + 1),1)
   Next I
   nodX.EnsureVisible   ' Muestra todos los nodos.
End Sub

Private Sub Option1_Click(Index as Integer)
   ' Cambia el estilo de línea de OptionButton.
   TreeView1.LineStyle = Index
End Sub

Private Sub Option2_Click(Index as Integer)
' Cambia el estilo de línea de OptionButton.
   TreeView1.Style = Index
   Form1.Caption = "Style del TreeView = " & Option2(Index).Caption
End Sub


ListImages (Propiedad)

Devuelve una referencia a una colección de objetos ListImage en un control ImageList.

Sintaxis

objeto.ListImages

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Puede manipular objetos ListImage mediante métodos de colección estándar como los métodos Add y Clear. Puede tener acceso a cada miembro de la colección por su índice o su clave única, que están almacenados en las propiedades Index y Key, respectivamente, cuando agrega el objeto ListImage a una colección.


Ejemplo de la propiedad ListImages

Este ejemplo agrega tres objetos ListImage a una colección ListImages y los usa en un control ListView. El código hace referencia a los objetos ListImage mediante sus dos propiedades Key e Item. Para probar el ejemplo, coloque los controles ImageList y ListView en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo.

Private Sub Form_Load()
   Dim imgX As ListImage
   ' Agrega imágenes a la colección ListImages.
   Set imgX = ImageList1. _
   ListImages.Add(,"rocket",LoadPicture("icons\industry\rocket.ico"))
   Set imgX = ImageList1. _
   ListImages.Add(,"plane",LoadPicture("icons\industry\plane.ico"))
   Set imgX = ImageList1. _
   ListImages.Add(,"car",LoadPicture("icons\industry\cars.ico"))

   ListView1.Icons = ImageList1 ' Establece la propiedad Icons.

   ' Agrega objetos Item al control ListView.
   Dim itmX as ListItem
   Set itmX = ListView1.ListItems.Add()
   ' Referencia por índice.
   itmX.Icon = 1
   itmX.Text = "Cohete"   ' Establece la cadena de texto.
   Set itmX = ListView1.ListItems.Add()
   ' Referencia por clave("avión").
   itmX.Icon = "jet"
   itmX.Text = "Avión"   ' Establece la cadena de texto.
   Set itmX = ListView1.ListItems.Add()
   itmX.Icon = "car"
   itmX.Text = "Auto"   ' Establece la cadena de texto.
End Sub


ListItems (Propiedad, control ListView)

Devuelve una referencia a una colección de objetos ListItem de un control ListView.

Sintaxis

objeto.ListItems

El marcador de posición objeto representa una expresión de objeto que da como resultado un control ListView.

Comentarios

Los objetos ListItem pueden manipularse mediante los métodos de colección estándar. Se puede tener acceso a cada ListItem de la colección mediante su clave única, que se crea y almacena en la propiedad Key.

También puede recuperar objetos ListItem por su posición de presentación mediante la propiedad Index.


Ejemplo de objeto ListSubItem y de colección ListSubItems

En el ejemplo se crean veinte objetos ListItem; para cada uno de estos objetos también se crean cuatro objetos ListSubItem. Sin embargo, antes de crear objetos ListSubItem, el código crea cinco objetos ColumnHeader: uno para el objeto ListItem y cuatro para los objetos ListSubItem. Para probar el ejemplo, inserte un control ListView en un formulario y pegue el código en la sección Declaraciones del programa.

Option Explicit

Private Sub Form_Load()
   Dim i As Integer ' Contador
   Dim j As Integer ' Contador para ListSubItems
   Dim sngWidth As Single
   Dim si As ListSubItem
   Dim li As ListItem

   ' No puede ver objetos ColumnHeaders o ListSubitems
   ' excepto cuando View tiene el valor lvwReport.
   ListView1.View = lvwReport

   ' Calcula el ancho de un objeto ColumnHeader.
   sngWidth = ListView1.Width / 5

   ' Crea cinco objetos ColumnHeader.
   For i = 1 To 5
      ListView1.ColumnHeaders.Add Text:="Col " & i, Width:=sngWidth
   Next i

   ' Crea veinte objetos ListItem. Por cada ListItem se crean cuatro
   ' objetos ListSubItem. Establece ForeColor a rojo para cada objeto.
   For i = 1 To 20
      Set li = ListView1.ListItems.Add(Text:="Elemento " & i)
      For j = 1 To 4
         Set si = li.ListSubItems.Add(Text:="Subelemento " & j)
         si.ForeColor = vbRed
      Next j
   Next i
End Sub


ListSubItems (Propiedad)

Devuelve una referencia a la colección ListSubItems de objetos ListSubItem.

Sintaxis

objeto.ListSubItems

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.


Locked (Propiedad)

Devuelve o establece un valor que indica si es posible modificar el contenido de control.

Sintaxis

objeto.Locked [ = booleano]

La sintaxis de la propiedad Locked consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si se puede modificar el control, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El usuario puede modificar el control o su contenido.
True | El usuario no puede modificar el control o su contenido.


MaskColor (Propiedad)

Devuelve o establece el color que se usa para crear las máscaras de un control ImageList.

Sintaxis

objeto.MaskColor [ = color]

La sintaxis de la propiedad MaskColor consta de las siguientes partes:

Parte | Descripción
objeto | Requerido. Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
color | Un valor o una constante que determina el color utilizado para crear máscaras. Puede especificar los colores mediante constantes intrínsecas de Visual Basic, la función QBColor o la función RGB.

Comentarios

Cada imagen de una colección ListImages tiene una máscara asociada. La máscara es una imagen monocroma derivada de la imagen original y se genera automáticamente usando la propiedad MaskColor como color específico de la máscara. Esta máscara no se usa directamente, sino que se aplica al mapa de bits original en operaciones gráficas como los métodos Overlay y Draw. Por ejemplo, la propiedad MaskColor determina qué color de una imagen será transparente en el método Overlay.

Si los colores del sistema cambian, el color transparente cambiará, creando la apariencia de la imagen impredecible. Es una buena práctica de programación para usar colores que no sean del sistema.


Ejemplo de la propiedad MaskColor

Este ejemplo carga varios mapas de bits en un control ImageList. Al hacer clic en el formulario, se superpone un objeto ListImage sobre uno de los demás objetos ListImage. Para probar el ejemplo, coloque un control ImageList y un control Picture en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el programa y haga clic en el formulario.

Private Sub Form_Load()
   Dim imgX As ListImage

   ' Carga mapas de bits.
   Set imgX = ImageList1.ListImages. _
   Add(, "No", LoadPicture("bitmaps\assorted\Intl_No.bmp"))
   Set imgX = ImageList1.ListImages. _
   Add(, , LoadPicture("bitmaps\assorted\smokes.bmp"))
   Set imgX = ImageList1.ListImages. _
   Add(, , LoadPicture("bitmaps\assorted\beany.bmp"))

   ScaleMode = vbPixels
   ' Establece la propiedad MaskColor.
   ImageList1.MaskColor = vbGreen
   ' Establece a blanco el BackColor del formulario.
   Form1.BackColor = vbWhite
End Sub

Private Sub Form_Click()
   Static intCount As Integer ' Variable estática para contar imágenes.

   ' Restablece el valor 2 en la variable si sobrepasa el valor de Images.Count.
   If intCount > ImageList1.ListImages.Count Or intCount < 1 Then
      intCount = 2 ' Restablece la segunda imagen
   End If

   ' Superpone ListImage(1) a ListImages 2-3.
   Picture1.Picture = ImageList1.Overlay(intCount, 1)
   ' Incrementa el contador.
   intCount = intCount + 1

   ' Crea una variable para almacenar el valor de ImageList.ImageWidth.
   Dim intW
   intW = ImageList1.ImageWidth

   ' Dibuja imágenes en el formulario para referencia.
   ' Usa el valor ImageWidth para espaciar las imágenes.
   ImageList1.ListImages(1).Draw Form1.hDC, 0, 0, imlNormal
   ImageList1.ListImages(2).Draw Form1.hDC, 0, intW, imlNormal
   ImageList1.ListImages(3).Draw Form1.hDC, 0, intW * 2, imlNormal
End Sub


MinWidth (Propiedad)

Devuelve o establece el ancho mínimo de un objeto Panel de un control StatusBar.

Sintaxis

objeto.MinWidth [= valor]

La sintaxis de la propiedad MinWidth consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Panel.
valor | Un entero que determina el ancho mínimo del objeto Panel. El modo de escala de este valor viene determinado por el contenedor del control.

Comentarios

La propiedad MinWidth se utiliza cuando la propiedad AutoSize está establecida a Contents o Spring para evitar que el panel se ajuste automáticamente a un ancho demasiado pequeño. Cuando la propiedad AutoSize está establecida a None, la propiedad MinWidth está siempre establecida al mismo valor que la propiedad Width.

El valor predeterminado es el mismo que el de la propiedad Width. El argumento valor utiliza el mismo modo de escala que el formulario primario o el contenedor.


Ejemplo de la propiedad MinWidth

Este ejemplo utiliza el panel predeterminado de un control StatusBar para mostrar la fecha actual. La propiedad MinWidth está establecida, de forma que cuando haga clic en el panel se eliminará la fecha pero el panel permanecerá con el mismo tamaño. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el objeto Panel para borrar la fecha.

Private Sub Form_Load()
    StatusBar1.Panels(1).AutoSize = sbrContents
    StatusBar1.Panels(1).Text = "La fecha de hoy es: " & Str(Now)
    ' Establecer el ancho mínimo al tamaño actual del panel
    StatusBar1.Panels(1).MinWidth = StatusBar1.Panels(1).Width
End Sub

Private Sub StatusBar1_PanelClick(ByVal Panel As ComctlLib.Panel)
    ' Se borra la fecha de hoy pero se mantiene el
    ' tamaño con el ancho mínimo.
    Panel.Text = "La fecha de hoy es: "
End Sub


MixedState (Propiedad)

Devuelve o establece un valor que determina si un objeto Button de un control Toolbar aparece en un estado indeterminado.

Sintaxis

objeto.MixedState [= booleano]

La sintaxis de la propiedad MixedState consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Button.
booleano | Una expresión booleana que determina si un Button muestra el estado indeterminado, como se especifica en Valores.

Valores

Los valores de booleano son:

Valor | Descripción
True | El objeto Button está en estado indeterminado y se muestra atenuado.
False | El objeto Button no está en estado indeterminado y se muestra de la forma normal.

Comentarios

La propiedad MixedState se usa normalmente cuando una selección contiene diversos atributos. Por ejemplo, si selecciona texto que contiene tanto caracteres sin formato (normales) como caracteres en negrita, se usará la propiedad MixedState. La imagen mostrada por el objeto Button podría cambiarse para indicar su estado, que sería distinto del valor Checked o Unchecked devuelto por la propiedad Value.


MultiRow (Propiedad)

Devuelve o establece un valor que indica si un control TabStrip puede mostrar más de una fila de fichas.

Sintaxis

objeto.MultiRow [= booleano]

La sintaxis de la propiedad MultiRow consta de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un control TabStrip.
Booleano | Una expresión booleana que especifica si el control tiene más de una fila de fichas, como se describe en Valores.

Valores

Los valores válidos para booleano son:

Valor | Descripción
True | Permite más de una fila de fichas.
False | Restringe las fichas a una única fila.

Comentarios

El número de filas se establece automáticamente según el ancho y el número de fichas. El número de filas puede cambiar si el control cambia de tamaño, lo que asegura que la ficha se ajusta a la siguiente fila. Si MultiRow es False y la última ficha excede el ancho del control, se agregará un control numérico horizontal en el extremo derecho del control TabStrip.

En tiempo de diseño, sitúe la propiedad MultiRow en la ficha General de la Página de propiedades del control TabStrip. En tiempo de ejecución, use código como el siguiente para establecer la propiedad MultiRow:

' Permite más de una fila de fichas en el control TabStrip.
TabStrip1.MultiRow = TRUE


MultiSelect (Propiedad, controles ListView, TabStrip)

Devuelve o establece un valor que indica si un usuario puede seleccionar múltiples objetos o elementos.

Sintaxis

objeto.MultiSelect [= booleano]

La sintaxis de la propiedad MultiSelect consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un elemento en la lista Se aplica a.
booleano | Un valor que especifica el tipo de selección, como se describe en Valores.

Valores

Los valores válidos para booleano son:

Valor | Descripción
False | (Predeterminado) La selección de múltiples objetos o elementos no está permitida.
True | Selección múltiple permitida.

Comentarios

Para el control ListView: si presiona MAYÚS y hace clic con el mouse (ratón) o presiona MAYÚS y una de las teclas de dirección (FLECHA ARRIBA, FLECHA ABAJO, FLECHA IZQUIERDA y FLECHA DERECHA) se extiende la selección desde el objeto ListItem previamente seleccionado hasta el objeto ListItem actual. Al presionar CTRL y hacer clic con el mouse se selecciona o se anula la selección de un objeto ListItem.

Para el control TabStrip: sólo se pueden seleccionar los objetos Tab cuando la propiedad Style tiene el valor TabButton.


Next (Propiedad)

Devuelve una referencia al siguiente nodo del mismo nivel que un objeto Node de un control TreeView.

Sintaxis

objeto.Next

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible referirse a un nodo y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(x).Child
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer a una variable de objeto el Node referido, de esta forma:

Dim NodChild As Node
' Obtiene una referencia al secundario del nodo x.
Set NodChild = TreeView1.Nodes(x).Child
' Usa la referencia para realizar operaciones con el secundario.
With nodChild
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad Next

En este ejemplo se agregan varios objetos Node a un control TreeView. La propiedad LastSibling, junto con las propiedades Next y FirstSibling, se utiliza para desplazarse por un nivel jerárquico de un objeto Node en el que se ha hecho clic. Para probar el ejemplo, coloque un control TreeView en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en los distintos nodos para ver el resultado.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"papá","Miguel")
   Set nodX = TreeView1.Nodes.Add(,,"mamá","Carolina")
   ' Alicia el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add(,,,"Alicia")

   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"María")
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Juana")
   ' Carmen es el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add("mamá",tvwChild,,"Carmen")
   nodX.EnsureVisible ' Muestra todos los nodos.

   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Gregorio")
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Pedro")
   ' Benito es el valor de LastSibling.
   Set nodX = TreeView1.Nodes.Add("papá",tvwChild,,"Benito")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim strText As String
   Dim n As Integer
   ' Establece a n el índice de FirstSibling.
   n = Node.FirstSibling.Index
   ' Coloca el texto de FirstSibling y un avance de línea
   ' en la variable de cadena.
   strText = Node.FirstSibling.Text & vbLF
   ' Mientras n no sea el índice de LastSibling, pasa al
   ' nodo siguiente y pone su texto en la variable de cadena.
   While n <> Node.LastSibling.Index
      strText = strText & TreeView1.Nodes(n).Next.Text & vbLF
   ' Establece a n el índice del siguiente nodo.
      n = TreeView1.Nodes(n).Next.Index
   Wend
   MsgBox strText ' Muestra el resultado.
End Sub


Nodes (Propiedad)

Devuelve una referencia a una colección de objetos TreeView de un control Node.

Sintaxis

objeto.Nodes

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Puede manipular los objetos Node con los métodos estándar para colecciones (como los métodos Add y Remove). El acceso a cada elemento de la colección puede hacerse por su índice o por una clave única almacenada en la propiedad Key.


Ejemplo de la propiedad Nodes

En este ejemplo se agregan varios objetos Node a un control TreeView. Cuando se hace clic en el formulario, se utiliza una referencia a cada objeto Node para mostrar su texto. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el formulario.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,"R","Raíz")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild,"C1","Secundario 1")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild,"C2","Secundario 2")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild,"C3","Secundario 3")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild,"C4","Secundario 4")
   nodX.EnsureVisible
   TreeView1.Style = tvwTreelinesText ' Estilo 4.
   TreeView1.BorderStyle = vbFixedSingle
End Sub

Private Sub Form_Click()
   Dim i As Integer
   Dim strNodes As String
   For i = 1 To TreeView1.Nodes.Count
   strNodes = strNodes & TreeView1.Nodes(i).Index & " " & _
   "Clave: " & TreeView1.Nodes(i).Key & " " & _
   "Texto: " & TreeView1.Nodes(i).Text & vbLF
   Next i
   MsgBox strNodes
End Sub


Orientation (Propiedad, control ProgressBar)

Devuelve o establece un valor que determina la orientación (horizontal o vertical) del objeto.

Sintaxis

objeto.Orientation [= entero]

La sintaxis de la propiedad Orientation consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que determina la orientación del control, como se indica en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
ccOrientationHorizontal | 0 | (Predeterminado) La orientación del control es horizontal.
ccOrientationVertical | 1 | La orientación del control es vertical.


Orientation (Propiedad, control Slider)

Establece un valor que determina si el control Slider se orienta horizontal o verticalmente.

Sintaxis

objeto.Orientation = número

La sintaxis de la propiedad Orientation consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Slider.
número | Una constante o un valor que especifica la orientación, como se describe en Valores.

Valores

Los valores admitidos para número son:

Constante | Valor | Descripción
sldHorizontal | 0 | (Predeterminado) Horizontal. El control deslizante se desplaza horizontalmente y las marcas pueden colocarse en el borde superior, en el inferior, en ambos o en ninguno.
sldVertical | 1 | Vertical. El control deslizante se desplaza verticalmente y las marcas pueden colocarse en el borde izquierdo, en el derecho, en ambos o en ninguno.


Ejemplo de la propiedad Orientation

En este ejemplo se alterna la orientación de un control Slider de un formulario. Para probar el ejemplo, coloque un control Slider en un formulario, pegue el código en la sección Declaraciones de éste y después ejecute el ejemplo. Haga clic en el formulario para alternar la orientación del control Slider.

Private Sub Form_Click()
   If Slider1.Orientation = 0 Then
      Slider1.Orientation = 1
   Else
      Slider1.Orientation = 0
   End If
End Sub


Panels (Propiedad)

Devuelve una referencia a una colección de objetos Panel.

Sintaxis

objeto.Panels

El marcador de posición objeto es una expresión de objeto que da como resultado un control StatusBar.


Width (Propiedad, objeto Panel)

Devuelve o establece el ancho actual de un control Panel de un objeto StatusBar.

Sintaxis

objeto.Width[= número]

La sintaxis de la propiedad Width consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Panel.
número | Un entero que determina el ancho del objeto Panel.

Comentarios

La propiedad Width refleja siempre el ancho actual de un objeto Panel y no puede ser menor que el valor de la propiedad MinWidth.


Ejemplo de la propiedad Width (Objeto Panel)

En este ejemplo se crean tres objetos Panel y se establecen distintos valores en su propiedad Width. Al hacer clic en el formulario se restablece la propiedad Width del primer panel. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones del mismo. Ejecute el ejemplo y haga clic en el formulario para cambiar el ancho del primer panel.

Private Sub Form_Load()
   Dim X As Panel
   Dim I as Integer
   For I = 1 to 2   ' Agrega 2 paneles.
      Set X = StatusBar1.Panels.Add()
   Next I
   With StatusBar1.Panels
      .Item(1).Text = "Ruta = " & App.Path
      .Item(1).Width = 2000   ' Panel largo
      .Item(2).Text = "Campo de registro"
      .Item(2).AutoSize = sbrSpring   ' División
      .Item(2).Width = 1000   ' Panel medio
      .Item(3).Style = sbrTime   ' Hora
      .Item(3).AutoSize = sbrSpring   ' División
      .Item(3).Width = 500   ' Panel medio
   End With
End Sub

Private Sub Form_Click()
   ' Cambia el ancho.
   StatusBar1.Panels(1). Width = 800
End Sub


Parent (Propiedad, objeto Node)

Devuelve o establece el objeto primario de un objeto Node. Sólo está disponible en tiempo de ejecución.

Sintaxis

objeto.Parent[ = nodo]

La sintaxis de la propiedad Parent consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
nodo | Un objeto Node que se convierte en el primario del objeto especificado.

Comentarios

En tiempo de ejecución se producirá un error si establece esta propiedad a un objeto que origina un bucle. Por ejemplo, no puede hacer que cualquier objeto Node se convierta en un nodo secundario de sus propios descendientes.

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible referirse a un nodo y realizar simultáneamente operaciones con él, de esta forma:

With TreeView1.Nodes(x).Parent
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer en una variable de objeto el Node referido, de esta forma:

Dim NodParent As Node
' Obtiene una referencia al primario del nodo x.
Set NodParent = TreeView1.Nodes(x).Parent
' Usa la referencia para realizar operaciones con el primario.
With nodParent
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad Parent (Objeto Node)

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un objeto Node, puede hacer clic en él y arrastrarlo hasta cualquier otro para convertirlo en secundario del nodo de destino. Para probar el ejemplo, coloque un control TreeView y un control ImageList en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y arrastre unos objetos Node sobre otros para ver el resultado.

' Declara variables globales.
Dim indrag As Boolean ' Indicador de operación de arrastrar y colocar.
Dim nodX As Object ' Elemento arrastrado.

Private Sub Form_Load()
   ' Carga un mapa de bits en un control ImageList.
   Dim imgX As ListImage
   Dim BitmapPath As String
   BitmapPath = "icons\mail\mail01a.ico"
   Set imgX = ImageList1.ListImages.Add(, , LoadPicture(BitmapPath))

   ' Inicializa el control TreeView y crea varios nodos.
   TreeView1.ImageList = ImageList1
   Dim nodX As Node      ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 1", 1)
   Set nodX = TreeView1.Nodes.Add(, , , "Primario 2", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 1", 1)
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Secundario 2", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 3", 1)
   Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Secundario 4", 1)
   Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Secundario 5", 1)
   nodX.EnsureVisible ' Expande el árbol para mostrar todos los nodos.
End Sub

Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   Set nodX = TreeView1.SelectedItem ' Elemento arrastrado.
   Set TreeView1.DropHighlight = Nothing
End Sub

Private Sub TreeView1_MouseMove _
(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = vbLeftButton Then ' Operación de arrastre.
      indrag = True ' Establece el indicador como verdadero.
      ' Establece el icono de arrastre con el método
      ' CreateDragImage.
      TreeView1.DragIcon = TreeView1.SelectedItem.CreateDragImage
      TreeView1.Drag vbBeginDrag ' Operación de arrastre.
   End If
End Sub

Private Sub TreeView1_DragDrop(Source As Control, x As Single, y As Single)
   ' Si el usuario no ha movido el mouse o lo ha soltado
   ' en una zona no válida.
   If TreeView1.DropHighlight Is Nothing Then
      indrag = False
      Exit Sub
   Else
      ' La propiedad Parent del nodo arrastrado es el
      ' nodo de destino.
      On Error GoTo checkerror ' Para evitar errores circulares.
      Set nodX.Parent = TreeView1.DropHighlight
      Cls
      Print TreeView1.DropHighlight.Text & _
      " es el primario de " & nodX.Text
      ' Libera la referencia de DropHighlight.
      Set TreeView1.DropHighlight = Nothing
      indrag = False
      Exit Sub ' Salir si no hay errores.
   End If

checkerror:
   ' Define constantes para código de errores de
   ' Visual Basic.
   Const CircularError = 35614
   If Err.Number = CircularError Then
      Dim msg As String
      msg = "Un nodo no puede ser secundario de su propio secundario."
      ' Muestra el cuadro de mensajes con un icono de
      ' exclamación y con botones Aceptar y Cancelar.
      If MsgBox(msg, vbExclamation & vbOKCancel) = vbOK Then
         ' Libera la referencia de DropHighlight.
         indrag = False
         Set TreeView1.DropHighlight = Nothing
         Exit Sub
      End If
   End If
End Sub

Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
   Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
End Sub


Parent (Propiedad, objeto ButtonMenu)

Devuelve o establece una referencia al primario de un objeto ButtonMenu.

Sintaxis

objeto.Parent [= botón]

La sintaxis de la propiedad Parent consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
botón | El objeto Button primario del objeto ButtonMenu.


PathSeparator (Propiedad, control TreeView)

Devuelve o establece el carácter delimitador utilizado en la ruta devuelta por la propiedad FullPath.

Sintaxis

objeto.PathSeparator [ =cadena]

La sintaxis de PathSeparator consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
cadena | Una cadena que determina el valor de PathSeparator; normalmente es un único carácter.

Comentarios

El carácter predeterminado es "\".


Ejemplo de la propiedad PathSeparator

En este ejemplo se agregan varios objetos Node a un control TreeView y se utiliza un control OptionButton para modificar la propiedad PathSeparator. Para probar el ejemplo, agregue un control TreeView y una matriz de tres controles OptionButton a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un nodo y haga clic en el formulario. Cambie el valor de la propiedad PathSeparator mediante el OptionButton.

Private Sub Form_Load
   TreeView1.BorderStyle = vbFixedSingle   ' Muestra el borde.
   ' Etiqueta los controles OptionButton con las opciones de Style.
   Option1(0).Caption = "/"
   Option1(1).Caption = "-"
   Option1(2).Caption = ":"

   ' Selecciona la última opción y establece el estilo inicial
   Option1(2).Value = True
   Treeview1.PathSeparator = Option1(2).Caption

   Dim nodX As Node
   Dim i As Integer
   Set nodX = TreeView1.Nodes.Add(,,,CStr(1))    ' Agrega el primer nodo.

   For i = 1 to 5   ' Agrega otros nodos.
      Set nodX = TreeView1.Nodes.Add(i,tvwChild,,CStr(i + 1))
   Next i

   nodX.EnsureVisible   ' Asegura que estén todos visibles.
End Sub

Private Sub Option1_Click(Index as Integer)
   ' Cambia el carácter delimitador.
   TreeView1.PathSeparator = Option1(Index).Caption
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   ' Muestra la ruta en el título del formulario.
   Me.Caption = Node.FullPath
End Sub


PictureAlignment (Propiedad, Controles ListView)

Devuelve o establece un valor que determina la alineación de la imagen de un objeto.

Sintaxis

objeto.PictureAlignment [= entero]

La sintaxis de la propiedad PictureAlignment consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que determina la alineación de las imágenes, como se indica en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
lvwTopLeft | 0 | Esquina superior izquierda.
lvwTopRight | 1 | Esquina superior derecha.
lvwBottomLeft | 2 | Esquina inferior izquierda.
lvwBottomRight | 3 | Esquina inferior derecha.
lvwCenter | 4 | Centrado.
lvwTile | 5 | (Predeterminado) En mosaico.


Placement (Propiedad)

Devuelve o establece un valor que especifica la posición de las fichas: arriba, abajo, a la izquierda o a la derecha.

Sintaxis

objeto.Placement [= entero]

La sintaxis de la propiedad Placement consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que especifica la ubicación de la ficha, como se describe en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
tabPlacementTop | 0 | (Predeterminado) Las fichas se muestran en la parte superior del control.
tabPlacementBottom | 1 | Las fichas se muestran en la parte inferior del control.
tabPlacementLeft | 2 | Las fichas se muestran en la parte izquierda del control.
tabPlacementRight | 3 | Las fichas se muestran en la parte derecha del control.

Comentarios

La propiedad Placement afecta también al comportamiento de la propiedad TabStyle. Por ejemplo, si Placement tiene valor tabPlacementLeft y TabStyle tiene valor tabTabOpposite, las fichas restantes se distribuirán en la parte derecha del control cuando el usuario haga clic en una ficha.


Position (Propiedad, objeto ColumnHeader)

Devuelve o establece la posición del objeto.

Sintaxis

objeto.Position [= entero]

La sintaxis de la propiedad Position consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que especifica la posición del objeto ColumnHeader. El entero puede ser cualquier número entre 1 y n, donde n corresponde al número de objetos ColumnHeader.

Comentarios

Utilice la propiedad para reorganizar el orden de las columnas.


Previous (Propiedad, objeto Node)

Devuelve una referencia al nodo anterior del mismo nivel que un objeto Node.

Sintaxis

objeto.Previous

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible referirse a un nodo y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(x).Previous
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer en una variable de objeto el Node referido, de esta forma:

Dim NodPrevious As Node
' Obtiene una referencia al nodo anterior del nodo x.
Set NodChild = TreeView1.Nodes(x).Previous
' Usa la referencia para realizar operaciones con el nodo anterior.
With nodPrevious
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad Previous

En este ejemplo se agregan varios nodos a un control TreeView. La propiedad Previous, junto con las propiedades LastSibling y FirstSibling, se utiliza para desplazarse por el nivel jerárquico del objeto Node en el que se ha hecho clic. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en los distintos nodos para ver el resultado.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(, , "r", "Raíz")
   Set nodX = TreeView1.Nodes.Add(, , "p", "Primario")

   Set nodX = TreeView1.Nodes.Add("r", tvwChild, , "Secundario 1")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, , "Secundario 2")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, , "Secundario 3")
   nodX.EnsureVisible ' Muestra todos los nodos.

   Set nodX = TreeView1.Nodes.Add("p", tvwChild, , "Secundario 4")
   Set nodX = TreeView1.Nodes.Add("p", tvwChild, , "Secundario 5")
   Set nodX = TreeView1.Nodes.Add("p", tvwChild, , "Secundario 6")
   nodX.EnsureVisible ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim strText As String
   Dim n As Integer
   ' Establece a n el índice de LastSibling.
   n = Node.LastSibling.Index
   ' Coloca en una variable de cadena el texto de
   ' LastSibling y un avance de línea.
   strText = Node.LastSibling.Text & vbLF
   While n <> Node.FirstSibling.Index
      ' Mientras n no sea el índice de FirstSibling, va
      ' al anterior y agrega su contenido a la
      ' variable de cadena.
      strText = strText & TreeView1.Nodes(n).Previous.Text & vbLF
      ' Establece a n el índice del nodo anterior.
      n = TreeView1.Nodes(n).Previous.Index
   Wend
   MsgBox strText ' Muestra el resultado.
End Sub


ReportIcon (Propiedad)

Devuelve o establece un valor que especifica la imagen mostrada para el objeto ColumnHeader cuando la propiedad View tiene el valor lvwReport.

Sintaxis

objeto.ReportIcon [= índice]

La sintaxis de la propiedad ReportIcon consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | La propiedad Key o Index de un objeto ListImage dentro de un control ImageList asociado.

Comentarios

Se asocia el objeto ColumnHeader al control ListImage nombrado por la propiedad ColumnHeaderIcons.


Root (Propiedad, objeto Node)

Devuelve una referencia al objeto Node raíz de un objeto Node seleccionado.

Sintaxis

objeto.Root

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

Las propiedades Child, FirstSibling, LastSibling, Previous, Parent, Next y Root devuelven una referencia a otro objeto Node. Por tanto, es posible referirse a un nodo y realizar operaciones con él simultáneamente, de esta manera:

With TreeView1.Nodes(x).Root
   .Text = "Nuevo texto"
   .Key = "Nueva clave"
   .SelectedImage = 3
End With

También puede establecer en una variable de objeto el Node referido, de esta forma:

Dim NodRoot As Node
' Obtiene una referencia al raíz del nodo x.
Set NodRoot = TreeView1.Nodes(x).Root
' Usa la referencia para realizar operaciones en el nodo raíz.
With nodRoot
   .Text = "Nuevo texto"   ' Cambia el texto.
   .Key = "Nueva clave"   ' Cambia la clave.
   .SelectedImage = 3   ' Cambia SelectedImage.
End With


Ejemplo de la propiedad Root

En este ejemplo se agregan varios objetos Node a un control TreeView. Al hacer clic en un objeto Node, el código se desplaza hacia arriba por el árbol hasta el nodo Root y muestra el texto de cada nodo Parent. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en un objeto Node.

Private Sub Form_Load()
   Dim nodX As Node   ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(,,"r", "Raíz")
   Set nodX = TreeView1.Nodes.Add(,,"p", "Primario")
   Set nodX = TreeView1.Nodes.Add("p",tvwChild,, "Secundario 1")
   nodX.EnsureVisible   ' Muestra todos los nodos.
   Set nodX = TreeView1.Nodes.Add("r",tvwChild,"C2", "Secundario 2")
   Set nodX = TreeView1.Nodes.Add("C2",tvwChild,"C3", "Secundario 3")
   Set nodX = TreeView1.Nodes.Add("C3",tvwChild,, "Secundario 4")
   Set nodX = TreeView1.Nodes.Add("C3",tvwChild,, "Secundario 5")
   nodX.EnsureVisible   ' Muestra todos los nodos.
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim n As Integer
   Dim strParents As String    ' Variable para información.
   n = Node.Index   ' Índice del nodo en el que se ha hecho clic.
   strParents = Node.Text & vbLF
   While n <> Node.Root.Index
      strParents = strParents & _
      TreeView1.Nodes(n).Parent.Text & vbLF
      ' Establece a n el índice del siguiente nodo primario.
      n = TreeView1.Nodes(n).Parent.Index
   Wend
   MsgBox strParents
End Sub


Scrolling (Propiedad)

Devuelve o establece un valor que determina si el control muestra el progreso con una barra segmentada estándar o con una barra continua.

Sintaxis

objeto.Scrolling [= entero]

La sintaxis de la propiedad Scrolling consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
integer | Una expresión numérica o constante que determina la apariencia de la barra de progreso, como se indica en valores.

Valores

Los valores admitidos para booleano son:

Constante | Valor | Descripción
ccScrollingStandard | 0 | Estándar, el progreso con segmentos.
ccScrollingSmooth | 1 | El progreso aparece liso.


Scroll (Propiedad)

Devuelve o establece un valor que especifica si se muestran barras de desplazamiento.

Sintaxis

objeto.Scroll [= booleano]

La sintaxis de la propiedad Scroll consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si el objeto posee barras de desplazamiento, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El objeto no tiene barras de desplazamiento.
True | El objeto tiene barras de desplazamiento.


SelectedImage (Propiedad)

Devuelve o establece el índice o el valor de clave de un objeto ListImage de un control ImageList asociado. El objeto ListImage se muestra al seleccionar un objeto Node.

Sintaxis

objeto.SelectedImage [ = índice]

La sintaxis de la propiedad SelectedImage consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
índice | Una cadena o un entero único que identifica un objeto ListImage de un control ImageList asociado. El entero es el valor de la propiedad Index del objeto ListImage; mientras que la cadena es el valor de su propiedad Key.

Comentarios

Si esta propiedad es Null, se usará la máscara de la imagen predeterminada especificada por la propiedad Image.


SelectedItem (Propiedad, controles ActiveX)

Devuelve una referencia a un objeto ListItem, Node o Tab seleccionado.

Sintaxis

objeto.SelectedItem

El marcador de posición objeto representa una expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

La propiedad SelectedItem devuelve una referencia a un objeto que puede usarse para establecer propiedades e invocar métodos del objeto seleccionado. Normalmente, esta propiedad se utiliza para obtener una referencia a un objeto ListItem, Node o Tab en el que el usuario ha hecho clic o que ha seleccionado. Con esta referencia puede validar un objeto antes de permitir acciones posteriores, como se ilustra en el código siguiente:

Command1_Click()
   ' Si el objeto seleccionado no es el raíz, quita el nodo.
   If TreeView1.SelectedItem.Index <> 1 Then
      Treeview1.Nodes.Remove TreeView1.SelectedItem.Index
   End If
End Sub

Para seleccionar por programa un objeto ListItem, utilice la instrucción Set con la propiedad SelectedItem, de esta forma:

Set ListView1.SelectedItem = ListView1.ListItems(1)


Ejemplo de la propiedad SelectedItem

En este ejemplo se agregan varios objetos Node a un control TreeView. Una vez seleccionado un Node, haga clic en el formulario para ver sus distintas propiedades. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un nodo y haga clic en el formulario.

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(, , "r", "Raíz")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, "c1", "Secundario 1")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, "c2", "Secundario 2")
   Set nodX = TreeView1.Nodes.Add("r", tvwChild, "c3", "Secundario 3")
   Set nodX = TreeView1.Nodes.Add("c3", tvwChild, "c4", "Secundario 4")
   Set nodX = TreeView1.Nodes.Add("c3", tvwChild, "c5", "Secundario 5")
   Set nodX = TreeView1.Nodes.Add("c5", tvwChild, "c6", "Secundario 6")
   Set nodX = TreeView1.Nodes.Add("c5", tvwChild, "c7", "Secundario 7")
   nodX.EnsureVisible
   TreeView1.BorderStyle = vbFixedSingle
End Sub

Private Sub Form_Click()
   Dim nodX As Node
   ' Establece la variable a SelectedItem.
   Set nodX = TreeView1.SelectedItem
   Dim strProps As String
   ' Obtiene las propiedades del nodo.
   strProps = "Texto: " & nodX.Text & vbLF
   strProps = strProps & "Clave: " & nodX.Key & vbLF
   On Error Resume Next ' El nodo raíz no tiene primario.
   strProps = strProps & "Primario: " & nodX.Parent.Text & vbLF
   strProps = strProps & "Primero del mismo nivel: " & _
   nodX.FirstSibling.Text & vbLF
   strProps = strProps & "Último del mismo nivel: " & _
   nodX.LastSibling.Text & vbLF
   strProps = strProps & "Siguiente: " & nodX.Next.Text & vbLF

   MsgBox strProps
End Sub


Selected (Propiedad, controles ActiveX)

Devuelve o establece un valor que determina si está seleccionado un objeto. En un objeto ListItem, la propiedad Selected no establece la propiedad SelectedItem, por lo que no se selecciona el objeto. Sólo devuelve un valor que indica si el objeto ListItem ya está seleccionado por otro medio.

Sintaxis

objeto.Selected [ = booleano]

La sintaxis de la propiedad Selected consta las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que determina si el objeto está seleccionado.

Comentarios

La propiedad Selected se utiliza para seleccionar mediante programa un determinado objeto Node o Tab. Una vez seleccionado el objeto de esta forma, puede realizar con él diversas operaciones, como establecer sus propiedades e invocar sus métodos.

Para seleccionar un objeto Node específico, deber referirse a él por el valor de su propiedad Index o por su propiedad Key. En el ejemplo siguiente se selecciona un objeto Node específico de un control TreeView:

Private Sub Command1_Click()
   TreeView1.Nodes(3).Selected = True ' Selecciona un objeto.
   ' Utiliza la propiedad SelectedItem para obtener
   ' una referencia al objeto.
   TreeView1.SelectedItem.Text = "Texto cambiado"
End Sub

En el control ListView, la propiedad SelectedItem siempre se refiere al primer elemento seleccionado. Por tanto, cuando tenga seleccionados varios elementos, deberá recorrerlos todos ellos comprobando la propiedad Selected de cada elemento.

Nota En lugar de usar la propiedad Selected para seleccionar por programa un objeto ListItem, utilice la instrucción Set con la propiedad SelectedItem, de esta forma:

Set ListView1.SelectedItem = ListView1.ListItems(1)


Ejemplo de la propiedad Selected

En este ejemplo se agregan varios objetos Node a un control TreeView. Cuando se selecciona un Node, se utiliza una referencia a él para mostrar su clave. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un nodo y haga clic en el formulario.

Private Sub Form_Load()
   Dim nodX As Node   ' Crea un árbol.
   Set nodX = TreeView1.Nodes.Add(,,"r","Raíz")
   Set nodX = TreeView1.Nodes.Add(,,"p","Primario")
   Set nodX = TreeView1.Nodes.Add("p",tvwChild,,"Secundario 1")
   nodX.EnsureVisible   ' Muestra todos los nodos.
   Set nodX = TreeView1.Nodes.Add("r",tvwChild,"C2","Secundario 2")
   Set nodX = TreeView1.Nodes.Add("C2",tvwChild,"C3","Secundario 3")
   Set nodX = TreeView1.Nodes.Add("C3",tvwChild,,"Secundario 4")
   Set nodX = TreeView1.Nodes.Add("C3",tvwChild,,"Secundario 5")
   nodX.EnsureVisible   ' Muestra todos los nodos.
End Sub

Private Sub Form_Click()
   Dim intX As Integer
   On Error Resume Next   ' Si no se escribe un entero.
   intX = InputBox("Comprobar nodo",,TreeView1.SelectedItem.Index)
   If IsNumeric(intX) Then   ' Se asegura de que se escribió un entero.
      If TreeView1.Nodes(intX).Selected = True Then
         MsgBox TreeView1.Nodes(intX).Text & " está seleccionado."
      Else
         MsgBox "No seleccionado"
      End If
   End If
End Sub

En el ejemplo siguiente se agregan tres objetos ListItem a un control ListView. Al hacer clic en el formulario, el código utiliza la propiedad Selected para determinar si un objeto ListItem específico está seleccionado. Para probar este ejemplo, coloque un control ListView en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo, seleccione un objeto ListItem y haga clic en el formulario.

Private Sub Form_Load()
   Listview1.BorderStyle = vbFixedSingle  ' Muestra el borde.
   Dim itmX As ListViewItem
   Set itmX = ListView1.ListItems.Add(,,"Elemento 1")
   Set itmX = ListView1.ListItems.Add(,,"Elemento 2")
   Set itmX = ListView1.ListItems.Add(,,"Elemento 3")
End Sub

Private Sub Form_Click()
   Dim intX As Integer
   On Error Resume Next ' Si no se escribe un entero.
   intX = InputBox("Comprobar elemento", , Listview1.SelectedItem.Index)
   If IsNumeric(intX) Then   ' Se asegura de que se escribió un entero.
      If ListView1.ListItems(intX).Selected = True Then
         MsgBox ListView1.ListItems(intX).Text & " está seleccionado."
      Else
         MsgBox "No seleccionado"
      End If
   End If
End Sub


SelectRange (Propiedad)

Establece un valor que determina si un control Slider puede tener un intervalo seleccionado.

Sintaxis

objeto.SelectRange = booleano

La sintaxis de la propiedad SelectRange consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Slider.
booleano | Una expresión booleana que determina si el control Slider puede o no tener un intervalo seleccionado, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Valor | Descripción
True | El control Slider puede tener un intervalo seleccionado.
False | El control Slider no puede tener un intervalo seleccionado.

Comentarios

Si establece SelectRange a False, el valor de la propiedad SelStart será el mismo que el de la propiedad Value. Al establecer la propiedad SelStart se modifica también la propiedad Value y viceversa, lo que se refleja en la posición del control deslizante en el control. La modificación de SelLength cuando el valor de SelectRange es False no tiene ningún efecto.


Ejemplo de la propiedad SelectRange

En este ejemplo se permite al usuario seleccionar un intervalo cuando la tecla MAYÚS se mantiene presionada. Para probar el ejemplo, coloque un control Slider en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y seleccione un intervalo presionando la tecla MAYÚS y arrastrando el mouse o haciendo clic en el control Slider.

Private Sub Form_Load()
   'Establece los valores del control Slider
   Slider1.Max = 20
End Sub

Private Sub Slider1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Shift = 1 Then          ' Si MAYÚS está presionada,
      Slider1.SelectRange = True    ' activa SelectRange
      Slider1.SelStart = Slider1.Value   ' Establece
                                    ' SelStart
      Slider1.SelLength = 0   ' Establece el SelLength previo
                              ' a 0 (si hay alguno).
   End If
End Sub

Private Sub Slider1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

   If Shift = 1 Then
   ' Si el usuario selecciona hacia atrás, se producirá un
   ' error.
   On Error Resume Next
   ' Establece SelLength con SelStart y el valor
   ' actual.
      Slider1.SelLength = Slider1.Value - Slider1.SelStart
   Else
      Slider1.SelectRange = False   ' Si el usuario
                                 ' suelta MAYÚS.
   End If
End Sub


SelImage (Propiedad)

El índice o la clave dentro del control ImageList donde es posible encontrar la imagen seleccionada para el elemento.

Sintaxis

objeto.SelImage [= variant]

La sintaxis de la propiedad SelImage consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
variant | Una expresión Variant que da como resultado el valor del índice o de la clave de una imagen del control ImageList.

Comentarios

La propiedad SelImage especifica la imagen que se mostrará cuando se seleccione un elemento de la lista. También determina qué imagen se mostrará junto al elemento en la zona de texto del cuadro combinado. Si no especifica ningún valor para la propiedad SelImage, la selección del elemento no cambiará la imagen del mismo.


SelLength, SelStart (Propiedades, control Slider)

  • SelLength devuelve o establece la longitud de un intervalo seleccionado en un control Slider.

  • SelStart devuelve o establece el inicio de un intervalo seleccionado en un control Slider.

Sintaxis

objeto.SelLength [= valor]

objeto.SelStart [= valor]

Las sintaxis de las propiedades SelLength y SelStart constan de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Slider.
valor | Una valor comprendido entre los de las propiedades Min y Max.

Comentarios

Las propiedades SelLength y SelStart se utilizan conjuntamente para seleccionar un intervalo de valores contiguos de un control Slider. El control Slider tiene así la ventaja adicional de ser una analogía visual del intervalo de valores posibles.

La propiedad SelLength no puede ser menor que 0 y la suma de SelLength y SelStart no puede ser superior al valor de la propiedad Max.


Ejemplo de las propiedades SelLength, SelStart

En este ejemplo se selecciona un intervalo en un control Slider. Para probar el ejemplo, coloque un control Slider en un formulario con tres controles TextBox llamados Text1, Text2 y Text3. El valor de la propiedad SelectRange del control Slider debe ser True. Pegue el código en la sección Declaraciones del formulario y ejecute el ejemplo. Al mantener presionada la tecla MAYÚS puede seleccionar un intervalo en el control deslizante y los distintos valores se mostrarán en los cuadros de texto.

Private Sub Form_Load()
   ' Se asegura de que SelectRange es True para
   ' permitir la selección.
   Slider1.SelectRange = True
End Sub

Private Sub Slider1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Shift = 1 Then ' Si MAYÚS está presionada,
   ' empieza a seleccionar.
      Slider1.ClearSel   ' Borra la selección anterior.
      Slider1.SelStart = Slider1.Value
      Text2.Text = Slider1.SelStart   ' Muestra el principio del
         ' intervalo en el cuadro de texto.
   Else
      Slider1.ClearSel   ' Borra la selección anterior.
   End If
End Sub

Private Sub Slider1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
   ' Cuando MAYÚS está presionada y SelectRange
   ' es True, se desencadena este evento.
   If Shift = 1 And Slider1.SelectRange = True Then
      ' Se asegura de que el valor actual es mayor que
      ' SelStart o se producirá un error: SelLength no
      ' puede ser negativa.
      If Slider1.Value >= Slider1.SelStart Then
         Slider1.SelLength = Slider1.Value - Slider1.SelStart
         Text1.Text = Slider1.Value  ' Para ver el final del
         ' intervalo.
         ' Text3 es la diferencia entre los valores final e inicial.
         Text3.Text = Slider1.SelLength
      End If
   End If
End Sub


Separators (Propiedad)

Devuelve o establece un valor que determina si se dibujan separadores entre los botones de un control TabStrip que tenga los estilos tabButton o tabFlatButton.

Sintaxis

objeto.Separators [= booleano]

La sintaxis de la propiedad Separators consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si se dibujarán separadores, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) No se dibujan separadores.
True | Se dibujan separadores.

Comentarios

Para mostrar los separadores, la propiedad Style del control TabStrip debe tener el valor tabButton o tabFlatButton.


SimpleText (Propiedad)

Devuelve o establece el texto mostrado cuando el valor de la propiedad Style de un control StatusBar es Simple.

Sintaxis

objeto.SimpleText [= cadena]

La sintaxis de la propiedad SimpleText consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control StatusBar.
cadena | Una cadena que se muestra cuando el valor de la propiedad Style es Simple.

Comentarios

El control StatusBar tiene una propiedad llamada Style que puede tomar los valores Simple y Normal. Cuando el valor es Simple, en la barra de estado sólo se muestra un panel. El texto mostrado con el estilo Simple es distinto del que aparece con el estilo Normal y se establece con la propiedad SimpleText.

La propiedad SimpleText puede usarse en situaciones en las que el modo de funcionamiento de la aplicación cambia temporalmente. Por ejemplo, al desplegar un menú, SimpleText puede describir su propósito.


Ejemplo de la propiedad SimpleText

En este ejemplo se agrega a un control StatusBar dos objetos Panel que aparecerán con el estilo Normal y después se agrega una cadena (con la propiedad SimpleText) que aparecerá cuando el valor de Style sea Simple. El control alterna entre los estilos Simple y Normal. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el control StatusBar.

Private Sub Form_Load()
   Dim I As Integer
   For I = 1 to 2
      StatusBar1.Panels.Add   ' Agrega dos objetos Panel.
   Next I

   With StatusBar1.Panels
      .Item(1).Style = sbrNum   ' BLOQ NÚM
      .Item(2).Style = sbrCaps   ' BLOQ MAYÚS
      .Item(3).Style = sbrScrl   ' BLOQ DESPL
   End With
End Sub

Private Sub StatusBar1_Click()
   ' Alterna entre los estilos Simple y Normal.
   With StatusBar1
      If .Style = 0 Then
         ' Este texto se mostrará cuando StatusBar
         ' esté con estilo Simple.
         .SimpleText = "Fecha y hora: " & Now
         .Style = sbrSimple   ' Estilo simple.
      Else
         .Style = sbrNormal   ' Estilo normal.
      End If
   End With
End Sub


SingleSel (Propiedad)

Devuelve o establece un valor que especifica si un elemento debe expandirse cuando se selecciona.

Sintaxis

objeto.SingleSel [= booleano]

La sintaxis de la propiedad SingleSel consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si un elemento se expande cuando se selecciona, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Constante | Descripción
False | (Predeterminado) El elemento no se expande cuando se selecciona.
True | El elemento se expande cuando se selecciona.


Icon, SmallIcon (Propiedades, objeto ListItem)

Devuelve o establece el índice o el valor de clave de un icono o un icono pequeño asociado a un objeto ListItem en un control ImageList.

Sintaxis

objeto.Icon [= índice]

objeto.SmallIcon [= índice]

Las sintaxis de las propiedades Icon y SmallIcon constan de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto ListItem.
índice | Un entero o una cadena única que identifica un icono o un icono pequeño en un control ImageList asociado. El entero es el valor de la propiedad Index del objeto ListItem; la cadena es el valor de la propiedad Key.

Comentarios

Antes de poder usar un icono en un objeto ListItem, es necesario asociar un control ImageList al control ListView que contiene el objeto. Vea las propiedades Icons, SmallIcons (control ListView) para obtener más información. El ejemplo siguiente muestra la sintaxis correcta:

ListView1.ListItems(1).SmallIcons=1

Las imágenes aparecerán cuando el control ListView esté en la vista Iconos pequeños.


Icons, SmallIcons (Propiedades)

Devuelven o establecen los controles ImageList asociados a las vistas Iconos e Iconos pequeños en un control ListView.

Sintaxis

objeto.Icons [= listaImágenes]

objeto.SmallIcons [= listaImágenes]

Las sintaxis de las propiedades Icons, SmallIcons constan de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado el control ListView.
listaImágenes | Una expresión de objeto que da como resultado un control ImageList.

Comentarios

Para asociar un control ImageList a un control ListView en tiempo de ejecución, asigne a estas propiedades el control ImageList deseado.

Cada objeto ListItem del control ListView también tiene propiedades Icon y SmallIcon que indizan los objetos ListImage y determinan qué imagen se muestra.

Cuando haya asociado un ImageList al control ListView, podrá usar el valor de la propiedad Index o Key para hacer referencia a un objeto ListImage en un procedimiento.


Ejemplo de las propiedades Icon, SmallIcon, Icons, SmallIcons, View

Este ejemplo llena un control ListView con el contenido de la tabla Publishers de la base de datos Biblio.mdb. Hay cuatro controles OptionButton etiquetados con opciones de la propiedad View. Debe colocar dos controles ImageList en el formulario, uno para contener imágenes para la propiedad Icon y otro para contener imágenes para la propiedad SmallIcon de cada objeto ListItem. Para probar el ejemplo, coloque en un formulario un ListView, una matriz de controles formada por cuatro controles OptionButton y dos controles ImageList y pegue el código en la sección Declaraciones del formulario.

Nota El ejemplo no funcionará a menos que agregue una referencia a la Biblioteca de objetos Microsoft DAO 3.0 mediante el comando Referencias del menú Proyecto. Ejecute el ejemplo y haga clic en el control ComboBox para cambiar entre las vistas.

Private Sub Option1_Click(Index as Integer)
   ' Asigna a la propiedad View del control ListView
   ' el Index de Option1
   ListView1.View = Index
End Sub

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega ColumnHeaders. El ancho de las columnas es el
   ' ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

   ListView1.BorderStyle = ccFixedSingle  ' Establece la propiedad                                                 ' BorderStyle.
   ListView1.View = lvwReport ' Establece la vista Informe.

   ' Agrega una imagen a ImageList1--Icons ImageList.
   Dim imgX As ListImage
   Set imgX = ImageList1.ListImages. _
   Add(, , LoadPicture("icons\mail\mail01a.ico"))
   ' Agrega una imagen a ImageList2--SmallIcons ImageList.
   Set imgX = ImageList2.ListImages. _
   Add(, , LoadPicture("bitmaps\assorted\w.bmp"))

   ' Para usar controles ImageList con el control
   ' ListView, deberá asociar un determinado control
   ' ImageList a las propiedades Icons y SmallIcons.
   ListView1.Icons = ImageList1
   ListView1.SmallIcons = ImageList2
   ' Etiqueta controles OptionButton con opciones de View.
      Option1(0).Caption = "Icon"
      Option1(1).Caption = "SmallIcon"
      Option1(2).Caption = "List"
      Option1(3).Caption = "Report"
      ListView1.View = lvwIcon ' Establece Icon como vista

   ' Crea variables de objeto para los objetos
   ' de acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla
   ' Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Crea una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un
   ' objeto ListItem.
   ' Usa el campo Name para el texto del objeto ListItem.
   ' Usa el campo Address para el SubItem(1) del
   ' objeto ListItem
   ' Usa el campo Phone para el SubItem(2) del
   ' objeto ListItem

   While Not myRs.EOF

      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
      itmX.Icon = 1   ' Establece un icono de ImageList1.
      itmX.SmallIcon = 1   ' Establece un icono de ImageList2.

      ' Si el campo Address no es Null, establece SubItem 1 como el             ' campo.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address) ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece SubItem 2 como el          ' campo.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext  ' Pasa al registro siguiente.
   Wend
End Sub


Sorted (Propiedad, controles ImageCombo, ListView)

Devuelve o establece un valor que determina si los elementos de una colección están ordenados.

Sintaxis

objeto.Sorted [= booleano]

La sintaxis de la propiedad Sorted consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto en la lista Se aplica a.
booleano | Una expresión booleana que especifica si los objetos están ordenados, como se describe en Valores.

Valores

Los valores admitidos para booleano son:

Valor | Descripción
True | Los elementos se ordenan alfabéticamente. Para el control ListView, los elementos se ordenan de acuerdo con la propiedad SortOrder.
False | Los elementos no se ordenan.

Comentarios

Para el control ListView, la propiedad Sorted debe ser True para que los valores de las propiedades SortOrder y SortKey surtan efecto. Cada vez que cambian las coordenadas de un ListItem, la propiedad Sorted es False.


Sorted (Propiedad, control TreeView)

  • Devuelve o establece un valor que determina si los nodos secundarios de un objeto Node están ordenados alfabéticamente.

  • Devuelve o establece un valor que determina si los nodos del nivel raíz de un control TreeView están ordenados alfabéticamente.

Sintaxis

objeto.Sorted [ = booleano]

La sintaxis de la propiedad Sorted consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
booleano | Una expresión booleana que especifica si los objetos Node están ordenados, como se describe en Valores.

Valores

Los valores válidos para boolean son:

Valor | Descripción
True | Los objetos Node se ordenan alfabéticamente por su propiedad Text. Los objetos Node cuya propiedad Text comienza con un número se ordenan como cadenas, donde el primer dígito determina la posición inicial en el orden.
False | Los objetos Node no están ordenados.

Comentarios

La propiedad Sorted puede usarse de dos formas. En primer lugar, sirve para ordenar los objetos Node situados en el nivel raíz (superior) de un control TreeView y en segundo lugar permite ordenar los secundarios inmediatos de cualquier objeto Node individual. Por ejemplo, el código siguiente ordena los nodos raíz de un control TreeView:

Private Sub Command1_Click()
   TreeView1.Sorted = True   ' Se ordenan los nodos del nivel superior.
End Sub

En el ejemplo siguiente se muestra cómo establecer la propiedad Sorted de un objeto Node al crearlo:

Private Sub Form_Load()
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(,,,"Nodo primario")
   nodX.Sorted = True
End Sub

Al establecer la propiedad Sorted a True se ordena únicamente la colección Nodes actual. Cuando agregue nuevos objetos Node a un control TreeView, debe establecer la propiedad Sorted a True otra vez para ordenar los objetos Node agregados.


Ejemplo de la propiedad Sorted (Control TreeView)

En este ejemplo se agregan varios objetos Node a un árbol. Al hacer clic en un Node, se le preguntará si desea ordenarlo. Para probar el ejemplo, agregue un control TreeView a un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en un objeto Node para ordenarlo.

Private Sub Form_Load()
   ' Crea un árbol con varios objetos Node sin ordenar.
   Dim nodX As Node
   Set nodX = TreeView1.Nodes.Add(, , , "Adán")
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, "z", "Zacarías")
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Noé")
   Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Abraham")
   Set nodX = TreeView1.Nodes.Add("z", tvwChild, , "Silvia")
   Set nodX = TreeView1.Nodes.Add("z", tvwChild, , "Pablo")
   Set nodX = TreeView1.Nodes.Add("z", tvwChild, "f", "Francisco")
   Set nodX = TreeView1.Nodes.Add("f", tvwChild, , "Julia")
   Set nodX = TreeView1.Nodes.Add("f", tvwChild, "c", "Carolina")
   Set nodX = TreeView1.Nodes.Add("f", tvwChild, , "Bruno")
   Set nodX = TreeView1.Nodes.Add("c", tvwChild, , "Yale")
   Set nodX = TreeView1.Nodes.Add("c", tvwChild, , "Harvard")
   nodX.EnsureVisible
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As Node)
   Dim answer As Integer
   ' Comprueba si hay nodos secundarios.
   If Node.Children > 1 Then ' Hay más de un nodo secundario.
      answer = MsgBox("¿Desea ordenar este nodo?", vbYesNo)  ' Pregunta al usuario.
      If answer = vbYes Then   ' El usuario desea ordenar.
         Node.Sorted = True
      End If
   End If
End Sub


SortKey (Propiedad, control ListView)

Devuelve o establece un valor que determina cómo se ordenan los objetos ListItem de un control ListView.

Sintaxis

objeto.SortKey [= entero]

La sintaxis de la propiedad SortKey consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
entero | Un entero que especifica el criterio de ordenación, como se describe en Valores.

Valores

Los valores admitidos para entero son:

Valor | Descripción
0 | Ordena mediante la propiedad Text del objeto Text.
> 1 | Ordena mediante el subelemento cuyo índice de colección se especifica aquí.

Comentarios

La propiedad Sorted debe ser True antes de que se produzca el cambio.

Es frecuente ordenar una lista cuando se hace clic en el encabezado de columna. Por esta razón, la propiedad SortKey suele incluirse en el evento ColumnClick para ordenar la lista según la columna en la que se ha hecho clic, como establece el criterio de ordenación y se demuestra en el ejemplo siguiente:

Private Sub ListView1_ColumnClick (ByVal ColumnHeader as ColumnHeader)
   ListView1.SortKey=ColumnHeader.Index-1
End Sub


SortOrder (Propiedad, control ListView)

Devuelve o establece un valor que determina si los objetos ListItem de un control ListView se muestran en orden ascendente o descendente.

Sintaxis

objeto.SortOrder [= entero]

La sintaxis de la propiedad SortOrder consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control ListView.
entero | Un entero que especifica el tipo de orden, como se describe en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
lvwAscending | 0 | (Predeterminado) Orden ascendente. Ordena desde el principio del alfabeto (A-Z) o la primera fecha. Los números se ordenan como cadenas, donde el primer dígito determina la posición inicial del orden y los siguientes dígitos determinan la siguiente ordenación.
lvwDescending | 1 | Orden descendente. Ordena desde el final del alfabeto (Z-A) o la última fecha. Los números se ordenan como cadenas, donde el primer dígito determina la posición inicial del orden y los siguientes dígitos determinan la siguiente ordenación.

Comentarios

La propiedad Sorted debe ser True para que SortOrder pueda volver a ordenar la lista.


Ejemplo del evento ColumnClick (Propiedades SortKey, SortOrder, Sorted)

Este ejemplo agrega tres objetos ColumnHeader a un control ListView y llena el control con los registros de la tabla Publishers de la base de datos Biblio.mdb. Una matriz con dos controles OptionButton ofrece las dos opciones para ordenar los registros. Cuando hace clic en un objeto ColumnHeader, el control ListView se ordena de acuerdo con la propiedad SortOrder, como determina el control OptionButtons. Para probar el ejemplo, coloque en un formulario un ListView y una matriz de controles con dos controles OptionButton y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo, haga clic en ColumnHeaders para ordenar y haga clic en OptionButton para cambiar la propiedad SortOrder.

Nota El ejemplo no funcionará a menos que agregue una referencia a la Biblioteca de objetos de Microsoft DAO 3.5 mediante el comando Referencias del menú Proyecto.

Private Sub Option1_Click(Index as Integer)
   ' Estos OptionButtons ofrecen dos opciones: Ascending
   ' (Index 0) y Descending (Index 1). Al hacer clic
   ' en uno de ellos se establece el SortOrder para el
   ' control ListView.
   ListView1.SortOrder = Index
   ListView1.Sorted = True ' Ordena la lista.
End Sub

Private Sub Form_Load()
   ' Crea una variable de objeto para el objeto ColumnHeader.
   Dim clmX As ColumnHeader
   ' Agrega ColumnHeaders. El ancho de las columnas es el
   ' ancho del control dividido entre el número de
   ' objetos ColumnHeader.
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Company", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Address", ListView1.Width / 3)
   Set clmX = ListView1.ColumnHeaders. _
   Add(, , "Phone", ListView1.Width / 3)

   ListView1.BorderStyle = ccFixedSingle  ' Establece la propiedad                                                 ' BorderStyle.
   ListView1.View = lvwReport ' Establece la vista Informe.

   ' Etiqueta el control OptionButton con las opciones de SortOrder.
      Option1(0).Caption = "Ascendente (A-Z)"
      Option1(1).Caption = "Descendente (Z-A)"
      ListView1.SortOrder = lvwAscending ' Ordenar ascendentemente.

   ' Crea variables de objeto para los objetos de
   ' acceso a datos.
   Dim myDb As Database, myRs As Recordset
   ' Establece la base de datos BIBLIO.MDB.
   Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
   ' Establece el conjunto de registros como la tabla Publishers.
   Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)

   ' Crea una variable para agregar objetos ListItem.
   Dim itmX As ListItem

   ' Mientras el registro no sea el último, agrega un objeto ListItem.
   ' Usa el campo Name para el texto del objeto ListItem.
   ' Usa el campo Address para el subelemento(1) del objeto ListItem.
   ' Usa el campo Phone para el subelemento(2) del objeto ListItem.

   While Not myRs.EOF
      Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))

      ' Si el campo Address no es Null, establece el subelemento 1 como       ' el campo.
      If Not IsNull(myRs!Address) Then
         itmX.SubItems(1) = CStr(myRs!Address)  ' Campo Address.
      End If

      ' Si el campo Phone no es Null, establece subelemento 2 como el          ' campo.
      If Not IsNull(myRs!Telephone) Then
         itmX.SubItems(2) = myRs!Telephone  ' Campo Phone.
      End If

      myRs.MoveNext   ' Pasa al registro siguiente.
   Wend
End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
   ' Cuando se hace clic en un objeto ColumnHeader, el
   ' control ListView se ordena por los subelementos de
   ' esa columna.
   ' Establece el SortKey como el Index del ColumnHeader - 1
   ListView1.SortKey = ColumnHeader.Index - 1
   ' Asigna a Sorted el valor True para ordenar la lista.
   ListView1.Sorted = True
End Sub


Style (Propiedad, objeto Button)

Devuelve o establece una constante o un valor que determina la apariencia y el comportamiento de un objeto Button en un control Toolbar.

Sintaxis

objeto.Style [=valor]

La sintaxis de la propiedad Style consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Button.
valor | Un valor de tipo constante o entero que determina la apariencia y el comportamiento de un objeto Button, como se especifica en Valores.

Valores

Los valores válidos para valor son:

Constante | Valor | Descripción
tbrDefault | 0 | (Predeterminado) Button. El botón es un botón de comando normal.
tbrCheck | 1 | Check. El botón es una casilla de verificación, que puede estar activada o desactivada.
tbrButtonGroup | 2 | ButtonGroup. El botón permanece presionado hasta que se presiona otro botón del grupo. Solamente un botón del grupo puede estar presionado en un momento determinado.
tbrSeparator | 3 | Separator. El botón funciona como un separador con un ancho fijo de 8 píxeles.
tbrPlaceholder | 4 | Placeholder. El botón es como un separador en cuanto a apariencia y funcionalidad, pero tiene un ancho ajustable.
tbrDropDown | 5 | MenuButton desplegable. Use este estilo para ver objetos MenuButton.

Comentarios

Los botones que tienen el estilo ButtonGroup deben estar agrupados. Para distinguir un grupo, sitúe todos los objetos Button que tengan el mismo estilo (ButtonGroup) entre dos objetos Button con el estilo Separator.

También puede situar otro control en una barra de herramientas si asigna a un objeto Button el estilo PlaceHolder y después dibuja un control en la barra de herramientas. Por ejemplo, para colocar un cuadro combinado desplegable en una barra de herramientas en tiempo de diseño, agregue un objeto Button con el estilo PlaceHolder y dele el tamaño de un control ComboBox. Después sitúe el ComboBox en el marcador de posición.

Cuando a un objeto Button se le asigna el estilo PlaceHolder, puede establecer el valor de la propiedad Width para dar cabida a otro control situado en el Button. Si un objeto Button tiene el estilo Button, Check o ButtonGroup, el alto y el ancho quedan determinados por las propiedades ButtonHeight y ButtonWidth.

Si coloca un control en un botón con el estilo PlaceHolder, debe usar código para alinear y dar tamaño al control si se cambia el tamaño del formulario, como se muestra a continuación:

Private Sub Form_Resize()
   ' Ajusta un ComboBox estableciendo sus propiedades
   ' Top, Left y Width con el mismo valor que las
   ' propiedades Top, Left y Width de un objeto Button.
With Toolbar1.Buttons("Combo1")
   Combo1.Move .Left,.Top,.Width
End With
End Sub


Style (Propiedad, objeto Panel)

Devuelve o establece el estilo de un objeto Panel de un control StatusBar.

Sintaxis

objeto.Style [= número]

La sintaxis de la propiedad Style consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto Panel.
número | Un entero o una constante que especifica el estilo del objeto Panel, como se describe en Valores.

Valores

Los valores admitidos para número son:

Constante | Valor | Descripción
sbrText | 0 | (Predeterminado). Texto y mapa de bits. Establece el texto con la propiedad Text.
sbrCaps | 1 | Tecla BLOQ MAYÚS. Muestra las letras MAYÚS en negrita cuando BLOQ MAYÚS está activada y atenuada cuando está desactivada.
sbrNum | 2 | Tecla BLOQ NÚM. Muestra las letras NÚM en negrita cuando BLOQ NÚM está activada y atenuadas cuando está desactivada.
sbrIns | 3 | Tecla INS. Muestra las letras INS en negrita cuando INS está activada y atenuadas cuando no lo está.
sbrScrl | 4 | Tecla BLOQ DESPL. Muestra las letras DESPL en negrita cuando BLOQ DESPL está activada y atenuadas cuando no lo está.
sbrTime | 5 | Hora. Muestra la hora actual con el formato del sistema.
sbrDate | 6 | Fecha. Muestra la fecha actual con el formato del sistema.
sbrKana | 7 | Kana. Muestra las letras KANA en negrita cuando BLOQ DESPL está activada y atenuada cuando está desactivada.

Comentarios

Si establece la propiedad Style a un estilo distinto de 0 (texto y mapa de bits), el texto establecido con la propiedad Text no aparecerá hasta que se vuelva a establecer Style a 0.

La propiedad Style puede establecerse al agregar objetos Panel a una colección. Si desea más información, vea el método Add.

Nota El control StatusBar tiene también la propiedad Style. Cuando el Style de un control StatusBar está establecido a Simple, el control sólo muestra un panel grande y su cadena(establecida con la propiedad SimpleText).


Ejemplo de la propiedad Style (Objeto Panel)

En este ejemplo se muestran datos con distintos estilos en un control StatusBar. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Después ejecute el ejemplo.

Private Sub Form_Load()
   ' Variables Dim.
   Dim I as Integer
   Dim pnlX as Panel

   For I = 1 to 5   ' Agrega 5 paneles.
      Set pnlX = StatusBar1.Panels.Add( )
   Next I

   ' Establece el estilo de cada panel.
   With StatusBar1.Panels
      .Item(1).Style = sbrDate    ' Fecha
      .Item(2).Style = sbrTime    ' Hora
      .Item(3).Style = sbrCaps    ' BLOQ MAYÚS
      .Item(4).Style = sbrNum   ' BLOQ NÚM
      .Item(5).Style = sbrIns    ' Tecla Insert
      .Item(6).Style = sbrScrl    ' BLOQ DESPL
   End With
   Form1.Width = 9140 ' Formulario ancho para mostrar todos los paneles.
End Sub


Style (Propiedad, control Toolbar)

Devuelve o establece un valor que determina la apariencia de un control.

Sintaxis

objeto.Style [= entero]

La sintaxis de la propiedad Style consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que determina la apariencia del control, como se indica en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
tbrStandard | 0 | (Predeterminado) Barra de herramientas estándar.
tbrTransparent | 1 | La barra de herramientas y los botones son transparentes, el texto del botón aparece bajo el mapa de bits correspondiente y el seguimiento completo está activado.
tbrRight | 2 | El efecto es similar al estilo tbrTransparent, excepto en que el texto del botón se muestra a la derecha de la imagen, cuando ésta existe.


Style (Propiedad, control StatusBar)

Devuelve o establece el estilo de un control StatusBar.

Sintaxis

objeto.Style [= número]

La sintaxis de la propiedad Style consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control StatusBar.
número | Un entero o una constante que determina la apariencia del control StatusBar, como se describe en Valores.

Valores

Los valores admitidos para número son:

Constante | Valor | Descripción
sbrNormal | 0 | (Predeterminado). Normal. El control StatusBar muestra todos los objetos Panel.
sbrSimple | 1 | Simple. El control sólo muestra un panel grande.

Comentarios

El control StatusBar puede alternar entre dos modos: Normal y Simple. Con el estilo Simple, el control StatusBar sólo muestra un panel. Su apariencia también cambia: el estilo de bisel es hacia afuera y sin bordes. Ello permite al control tener dos apariencias, que se mantienen de forma independiente entre sí.

Es posible mostrar cadenas distintas dependiendo del estilo del control. Utilice la propiedad SimpleText para establecer el texto de la cadena que se mostrará cuando el valor de la propiedad Style sea Simple2.

Nota Cuando la propiedad Style está establecida a Simple, el control StatusBar muestra un panel grande (el ancho del control) que no puede controlarse mediante la colección Panels.


Ejemplo de la propiedad Style (Control StatusBar)

En este ejemplo se agrega a un control StatusBar dos objetos Panel que aparecerán con el estilo Normal y después se agrega una cadena (con la propiedad SimpleText) que aparecerá cuando el valor de Style sea Simple. El control alterna entre los estilos Simple y Normal para mostrar la cadena de la propiedad SimpleText. Para probar el ejemplo, coloque un control StatusBar en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic en el control StatusBar.

Private Sub Form_Load()
   Dim I As Integer
   For I = 1 to 2
      StatusBar1.Panels.Add
   Next I
   With StatusBar1.Panels
      .Item(1).Style = sbrDate   ' Fecha
      .Item(2).Style = sbrCaps   ' BLOQ MAYÚS
      .Item(3).Style = sbrScrl   ' BLOQ DESPL
   End With

End Sub

Private Sub StatusBar1_Click()
   With StatusBar1
      If .Style = sbrNormal Then
         .SimpleText = Time   ' Muestra la hora.
         .Style = sbrSimple   ' Estilo simple
      Else
         .Style = sbrNormal   ' Estilo normal
      End If
   End With
End Sub


Style (Propiedad, control TreeView)

Devuelve o establece el tipo de gráficos (imágenes, texto, más/menos y líneas) y texto que aparece para cada objeto Node de un control TreeView.

Sintaxis

objeto.Style [ = número]

La sintaxis de la propiedad Style consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
número | Un entero que especifica el estilo de los gráficos, como se describe en Valores.

Valores

Los valores válidos para número son:

Valor | Descripción
0 | Sólo texto.
1 | Imagen y texto.
2 | Más/menos y texto.
3 | Más/menos, imagen y texto.
4 | Líneas y texto.
5 | Líneas, imagen y texto.
6 | Líneas, más/menos y texto.
7 | (Predeterminado) Líneas, más/menos, imagen y texto.

Comentarios

Si la propiedad Style se establece a un valor que incluye líneas, la propiedad LineStyle determinará la apariencia de éstas. Si la propiedad Style se establece a un valor que no incluye líneas, el valor de LineStyle se pasa por alto.


SubItemIndex (Propiedad)

Devuelve el índice del subelemento asociado a un objeto ColumnHeader de un control ListView.

Sintaxis

objeto.SubItemIndex [= entero]

La sintaxis de la propiedad SubItemIndex consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto ColumnHeader.
entero | Un entero que especifica el índice del subelemento asociado al objeto ColumnHeader.

Comentarios

Los subelementos son matrices de cadenas que representan los datos del objeto ListItem cuando se muestran en la vista Informe.

El encabezado de la primera columna siempre tiene una propiedad SubItemIndex con el valor 0 porque el icono pequeño y el texto del objeto ListItem siempre aparecen en la primera columna y se consideran objetos ListItem, no subelementos.

El número de encabezados de columna determina el número de subelementos. El número de encabezados de columna siempre es uno más que el de subelementos.


Ejemplo de la propiedad SubItemIndex

Este ejemplo agrega tres objetos ColumnHeader a un control ListView. El código agrega varios ListItem y SubItems mediante SubItemIndex para asociar la cadena de SubItems al objeto ColumnHeader correcto. Para probar el ejemplo, coloque un control ListView en un formulario y pegue el código en la sección Declaraciones del formulario. Ejecute el ejemplo.

   ' Comprueba que el control ListView está en la vista Informe.
   ListView1.View = lvwReport

   ' Agrega tres columnas.
   ListView1.ColumnHeaders.Add , "Name", "Name"
   ListView1.ColumnHeaders.Add , "Address", "Address"
   ListView1.ColumnHeaders.Add , "Phone", "Phone"

   ' Agrega objetos ListItem al control.
   Dim itmX As ListItem
   ' Agrega nombres a la columna 1.
   Set itmX= ListView1.ListItems.Add(1, "Mary", "Mary")
   ' Usa el SubItemIndex para asociar el SubItem al ColumnHeader
   ' correcto. Use la clave ("Address") para
   ' especificar el ColumnHeader correcto.
   itmX.SubItems(ListView1.ColumnHeaders("Address").SubItemIndex) _
   = "212 Grunge Street"
   ' Usa la clave ColumnHeader para asociar la cadena
   ' SubItems al ColumnHeader correcto.
   itmX.SubItems(ListView1.ColumnHeaders("Phone").SubItemIndex) _
   = "555-1212"

   Set itmX = ListView1.ListItems.Add(2, "Bill", "Bill")
   itmX.SubItems(ListView1.ColumnHeaders("Address").SubItemIndex) _
   = "101 Pacific Way"
   itmX.SubItems(ListView1.ColumnHeaders("Phone").SubItemIndex) _
   = "555-7879"

   Set itmX= ListView1.ListItems.Add(3, "Susan", "Susan")
   itmX.SubItems(ListView1.ColumnHeaders("Address").SubItemIndex) = _
   "800 Chicago Street"
   itmX.SubItems(ListView1.ColumnHeaders("Phone").SubItemIndex) = _
   "555-4537"

   Set itmX= ListView1.ListItems.Add(4, "Tom", "Tom")
   itmX.SubItems(ListView1.ColumnHeaders("Address").SubItemIndex) _
   = "200 Ocean City"
   itmX.SubItems(ListView1.ColumnHeaders("Phone").SubItemIndex) = _
   "555-0348"


SubItems (Propiedad, control ListView)

Devuelve o establece una matriz de cadenas (un subelemento) que representa los datos del objeto ListItem de un control ListView.

Sintaxis

objeto.SubItems(índice) [= cadena]

La sintaxis de la propiedad SubItems consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto ListItem.
índice | Un entero que identifica un subelemento para el ListItem especificado.
cadena | Texto que describe el subelemento.

Comentarios

Los subelementos son matrices de cadenas que representan los datos del objeto ListItem y se muestran en la vista Informe. Por ejemplo, podría mostrar el tamaño de archivo y la fecha de la última modificación de un archivo.

Un objeto ListItem puede tener cualquier número de cadenas de datos de elementos asociados (subelementos), pero cada objeto ListItem debe tener el mismo número de subelementos.

Hay encabezados de columna correspondientes definidos para cada subelemento.

No puede agregar elementos directamente a la matriz de subelementos. Utilice el método Add de la colección ColumnHeaders para agregar subelementos.


TabFixedHeight, TabFixedWidth (Propiedades)

Devuelven o establecen el alto y el ancho fijo de todos los objetos Tab de un control TabStrip, pero sólo si la propiedad TabWidthStyle está establecida a tabFixed.

Sintaxis

objeto.TabFixedHeight [= entero]

objeto.TabFixedWidth [= entero]

Las sintaxis de las propiedades TabFixedHeight y TabFixedWidth constan de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un objeto TabStrip.
Entero | El número de píxeles o twips del alto o ancho de un control TabStrip. La escala utilizada en entero depende del valor de ScaleMode del contenedor.

Comentarios

La propiedad TabFixedHeight se aplica a todos los objetos Tab del control TabStrip. Se establece de manera determinada como el alto de la fuente, como queda especificado en la propiedad Font, o el alto del objeto ListImage especificado por la propiedad Image, lo que sea mayor, mas unos pocos píxeles extra que hacen de borde. Si la propiedad TabWidthStyle está establecida a tabFixed y el valor de la propiedad TabFixedWidth está establecido, el ancho de cada objeto Tab sigue siendo igual tanto si se agregan como si se eliminan objetos Tab en el control.


TabMinWidth (Propiedad)

Devuelve o establece el ancho mínimo permitido de una ficha.

Sintaxis

objeto.TabMinWidth [= número]

La sintaxis de la propiedad TabMinWidth consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
número | El ancho mínimo de un objeto Tab. La propiedad ScaleMode del contenedor determina la escala utilizada para número.

Comentarios

La propiedad TabMinWidth no tiene ningún efecto si la propiedad TabWidthStyle tiene el valor tabFixed.


Tabs (Propiedad, control TabStrip)

Devuelve una referencia a la colección de objetos Tab en un control TabStrip.

Sintaxis

objeto.Tabs(índice)

La sintaxis de la propiedad Tabs consta de las siguientes partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un control TabStrip.
Índice | Un valor que identifica un objeto Tab de la colección Tabs. Puede ser la propiedad Index o la propiedad Key del objeto Tab deseado.

Comentarios

Puede tener acceso a la colección Tabs mediante los métodos de colección estándar, como el método Item.


Style (Propiedad, control TabStrip)

Devuelve o establece la apariencia, fichas o botones, de un control TabStrip.

Sintaxis

objeto.Style [= valor]

La sintaxis de la propiedad Style consta de las siguiente partes:

Parte | Descripción
Objeto | Una expresión de objeto que da como resultado un control TabStrip.
Valor | Una constante o un entero que determina la apariencia del cuadro de diálogo con fichas, como se describe en Valores.

Valores

Los valores válidos para valor son:

Constante | Valor | Descripción
TabTabs | 0 | (Predeterminado) Fichas. Las fichas aparecen como separadores de cuadernos y el área interna tiene un borde tridimensional alrededor.
TabButtons | 1 | Botones. Las fichas aparecen como botones de comando normales y el área interna no tiene borde alrededor.
TabFlatButtons | 2 | Botones lisos. La ficha seleccionada aparece como hundida en el fondo. Las fichas no seleccionadas aparecen lisas.

Comentarios

En tiempo de diseño, seleccione la propiedad Style que desee (fichas o botones) de la lista Estilo en la ficha General de la Página de propiedades del control TabStrip.

En tiempo de ejecución, emplee código como el siguiente para establecer la propiedad Style:

' Propiedad Style establecida a Tabs.
TabStrip1.Style = tabTabs

' Propiedad Style establecida a Buttons.
TabStrip1.Style = tabButtons


TabStyle (Propiedad)

Devuelve o establece un valor que determina cómo se colocarán las filas de fichas restantes, delante de una ficha seleccionada.

Sintaxis

objeto.TabStyle [= entero]

La sintaxis de la propiedad TabStyle consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que especifica la redistribución de las fichas restantes, según se indica en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
tabTabStandard | 0 | (Predeterminado) Las fichas restantes permanecen en el mismo lado del control.
tabTabOpposite | 1 | La fila de fichas por delante de la ficha seleccionada se redistribuye en el lado opuesto del control.


TabWidthStyle (Propiedad)

Devuelve o establece un valor que determina la justificación o ancho de todos los objetos Tab de un control TabStrip.

Sintaxis

objeto.TabWidthStyle [= valor]

La sintaxis de la propiedad TabWidthStyle consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control TabStrip.
valor | Un entero o una constante que determina si las fichas se justifican o se establecen a un ancho fijo, como se especifica en Valores.

Valores

Los valores válidos para valor son:

Constante | Valor | Descripción
tabJustified | 0 | (Predeterminado) Justificado. Si la propiedad MultiRow es True, cada ficha es lo suficientemente ancha como para dar cabida a su contenido y, si es necesario, el ancho de cada ficha se incrementa de manera que cada fila ocupa el ancho del control. Si la propiedad MultiRow es False, o si sólo hay una fila de fichas, este valor no tiene ningún efecto.
tabNonJustified | 1 | No justificado. Cada ficha es lo suficientemente ancha como para dar cabida a su contenido. Las filas no se justifican, por lo que terminan de manera irregular.
tabFixed | 2 | Fijo. Todas las fichas tienen un ancho idéntico que se determina por la propiedad TabFixedWidth.

Comentarios

En tiempo de diseño puede establecer la propiedad TabWidthStyle en la ficha General de la Página de propiedades del control TabStrip. El valor de la propiedad TabWidthStyle afecta al ancho con el que cada objeto Tab aparece en tiempo de ejecucióndefRunTime@vbdef98.chm.

En tiempo de ejecución, puede establecer la propiedad TabWidthStyle como sigue:

' Justifica todas las fichas de una fila para ajustarlas ' al ancho del control.
TabStrip1.MultiRow = True
TabStrip1.TabWidthStyle = tabJustified

' Crea filas de fichas desiguales.
TabStrip1.MultiRow = True
TabStrip1.TabWidthStyle = tabNonJustified

' Establece el mismo ancho para todas las fichas.
TabStrip1.TabFixedWidth = 500
TabStrip1.TabWidthStyle = tabFixed


TextAlignment (Propiedad)

Devuelve o establece un valor que determina la posición del texto relativa al botón.

Sintaxis

objeto.TextAlignment [= entero]

La sintaxis de la propiedad TextAlignment consta de tres partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | La posición del texto, como se muestra en Valores.

Valores

Los valores para entero son:

Constante | Valor | Descripción
tbrTextAlignBottom | 0 | El texto es alineado al pie del botón.
tbrTextAlignRight | 1 | El texto es alineado a la derecha del botón.


TextBackground (Propiedad)

Devuelve o establece un valor que determina si el fondo del texto de un objeto ListItem es opaco o transparente.

Sintaxis

objeto.TextBackground [ = entero]

La sintaxis de la propiedad TextBackground consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
integer | Una constante o valor que determina el estilo del fondo de texto, como se muestra en Valores.

Valores

Constante | Valor | Descripción
lvwTransparent | 0 | El fondo del texto es transparente.
lvwOpaque | 1 | El fondo del texto es del mismo color que la propiedad BackColor.

Comentarios

El fondo del texto corresponde a la zona rectangular que rodea el texto del objeto ListItem.

La propiedad TextBackground se utiliza cuando el control ListView muestra una imagen (al asignar una imagen a la propiedad Picture). Cuando se coloca un objeto ListItem sobre la imagen y el valor de la propiedad es opaco, la imagen no aparecerá a través del fondo del texto. Si se establece la propiedad a transparente, la imagen del fondo será visible detrás del texto.


TextPosition (Propiedad)

Devuelve o establece un valor que determina la posición del texto mostrado, en relación con el objeto.

Sintaxis

objeto.TextPosition [= entero]

La sintaxis de la propiedad TextPosition consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
entero | Una expresión numérica que determina la posición del ToolTipText, como se indica en Valores.

Valores

Los valores admitidos para entero son:

Constante | Valor | Descripción
sldAboveLeft | 0 | El texto se muestra encima o a la izquierda del control.
sldBelowRight | 1 | El texto se muestra debajo o a la derecha del control.

Comentarios

Above y Below se utilizan sólo para controles deslizantes horizontales, mientras que Left y Right se utilizan sólo para controles deslizantes verticales.


TickFrequency (Propiedad)

Devuelve o establece la frecuencia de las marcas de un control Slider en relación con su intervalo. Por ejemplo, si el intervalo es 100 y la propiedad TickFrequency tiene el valor 2, habrá una marca cada dos incrementos del intervalo.

Sintaxis

objeto.TickFrequency [= número]

La sintaxis de la propiedad TickFrequency consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Slider.
número | Una expresión numérica que especifica la frecuencia de las marcas.


Ejemplo de la propiedad TickFrequency

En este ejemplo se hace coincidir el ancho de un control TextBox con el de un control Slider. Mientras la propiedad Value del control Slider sea superior a un determinado valor, el ancho del control TextBox coincidirá con el valor del control Slider. La propiedad TickFrequency depende de la propiedad Max del control Slider. Para probar el ejemplo, coloque un control Slider y un control TextBox en un formulario y pegue el código en la sección Declaraciones de éste. Ejecute el ejemplo y haga clic varias veces en el control Slider.

Private Sub Form_Load()
   Text1.Width = 4500  ' Establece un ancho mínimo para el control TextBox.
   Slider1.Left = Text1.Left ' Alinea el Slider y el TextBox.
   ' Hace coincidir los dos anchos.
   Slider1.Max = Text1.Width
   ' Coloca el Slider por debajo del TextBox.
   Slider1.Top = Text1.Top + Text1.Height + 50
   ' Establece TickFrequency a una fracción del valor
   ' de Max.
   Slider1.TickFrequency = Slider1.Max * 0.1
   ' Establece LargeChange y SmallChange a una
   ' fracción de Max.
   Slider1.LargeChange = Slider1.Max * 0.1
   Slider1.SmallChange = Slider1.Max * 0.01
End Sub

Private Sub Slider1_Change()
   ' Si el tamaño del Slider es menos de 1/3 del
   ' TextBox, no hay cambio.
   ' De lo contrario, se hace coincidir el ancho del
   ' TextBox con el valor del Slider.
   If Slider1.Value > Slider1.Max / 3 Then
      Text1.Width = Slider1.Value
   End If
End Sub


TickStyle (Propiedad)

Devuelve o establece el estilo (o ubicación) de las marcas mostradas en un control Slider.

Sintaxis

objeto.TickStyle [= número]

La sintaxis de la propiedad TickStyle consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Slider.
número | Una constante o un entero que especifica el valor de la propiedad TickStyle, como se describe en Valores.

Valores

Los valores admitidos para número son:

Constante | Valor | Descripción
sldBottomRight | 0 | (Predeterminado) Abajo y derecha. Las marcas se colocan a lo largo del borde inferior del control Slider si éste está orientado horizontalmente o a lo largo del borde derecho si la orientación es vertical.
sldTopLeft | 1 | Arriba e izquierda. Las marcas se colocan a lo largo del borde superior del control Slider si éste está orientado horizontalmente o a lo largo del borde izquierdo si la orientación es vertical.
sldBoth | 2 | Ambos. Las marcas se colocan a ambos lados del control Slider.
sldNoTicks | 3 | Ninguno. No se muestran marcas en el control Slider.


Ejemplo de la propiedad TickStyle

Este ejemplo permite ver los distintos estilos de marcas disponibles en una lista desplegable. Para probar el ejemplo, coloque un control Slider y un control ComboBox en un formulario. Pegue el código en la sección Declaraciones del formulario y ejecute el ejemplo. Haga clic en el control ComboBox para cambiar el valor de la propiedad TickStyle.

Private Sub Form_Load()
   With combo1
      .AddItem "Abajo/Derecha"
      .AddItem "Arriba/Izquierda"
      .AddItem "Ambos"
      .AddItem "Ninguno"
      .ListIndex = 0
   End With
End Sub

Private Sub combo1_Click()
   Slider1.TickStyle = combo1.ListIndex
End Sub


ToolTipText (Propiedad, controles ActiveX)

Devuelve o establece Información sobre herramientas.

Sintaxis

objeto.ToolTipText [=textoInformaciónHerramientas]

La sintaxis de la propiedad ToolTipText consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un objeto de la lista Se aplica a.
textoInformaciónHerramientas | La cadena que se muestra cuando el puntero del mouse se sitúa encima del objeto.


UseMaskColor (Propiedad)

Devuelve o establece un valor que determina si el color asignado en la propiedad MaskColor es utilizado como una máscara.

Sintaxis

objeto.UseMaskColor [= valor]

Las sintaxis de la propiedad UseMaskColor constan de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que evalúa a un objeto en la lista Se aplica a.
valor | Un valor booleano que determina si la propiedad MaskColor es utilizada, así como se describe en Valores.

Valores

Los valores para valor son:

Valor | Descripción
True | La propiedad MaskColor es utilizada para crear regiones transparentes.
False | (Predeterminado) La propiedad MaskColor no es utilizada.

Comentarios

Las propiedades MaskColor y UseMaskColor son utilizadas sólo cuando la propiedad Style tiene el valor 1 - Gráfico.


View (Propiedad, control ListView)

Devuelve o establece la apariencia de los objetos ListItem de un control ListView.

Sintaxis

objeto.View [= valor]

La sintaxis de la propiedad View consta de las siguientes partes:

Parte | Descripción
objeto | La expresión de objeto que da como resultado un control ListView.
valor | Un entero o una constante que especifica la apariencia del control, como se describe en Valores.

Valores

Los valores admitidos para valor son:

Constante | Valor | Descripción
lvwIcon | 0 | (Predeterminado) Icono. Cada objeto ListItem se representa por un icono de tamaño completo (estándar) y una etiqueta de texto.
lvwSmallIcon | 1 | Icono pequeño. Cada objeto ListItem se representa por un icono pequeño y una etiqueta de texto que aparece a la derecha del icono. Los elementos aparecen horizontalmente.
lvwList | 2 | Lista. Cada objeto ListItem se representa por un icono pequeño y una etiqueta de texto que aparece a la derecha del icono. Los objetos ListItem se organizan verticalmente, cada uno en su propia línea con la información dispuesta en columnas.
lvwReport | 3 | Informe. Cada objeto ListItem se muestra con su icono pequeño y etiquetas de texto. Puede proporcionar información adicional sobre cada objeto ListItem en un subelemento. Los iconos, las etiquetas de texto y la información aparecen en columnas. La columna situada en el extremo izquierdo contiene el icono pequeño, seguido de la etiqueta de texto. Otras columnas adicionales muestran el texto de cada uno de los subelementos del elemento.

Comentarios

Sólo en la vista Iconos se utiliza la propiedad LabelWrap para especificar si se produce el ajuste de texto en las etiquetas del objeto ListItem.

En la vista Informe puede ocultar los encabezados de columna si asigna a la propiedad HideColumnHeaders el valor True. También puede usar el evento ColumnClick y las propiedades Sorted, SortOrder y SortKey para ordenar los objetos ListItem o los subelementos cuando un usuario hace clic en un encabezado de columna. El usuario puede cambiar el tamaño de la columna si arrastra el borde derecho de un encabezado de columna hasta obtener el tamaño deseado.


Wrappable (Propiedad)

Devuelve o establece un valor que determina si los botones del control Toolbar se ajustarán automáticamente cuando la ventana cambie de tamaño.

Sintaxis

objeto.Wrappable [= booleano]

La sintaxis de la propiedad Wrappable consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto que da como resultado un control Toolbar.
booleano | Una expresión booleana que determina si los objetos Button de un control Toolbar se ajustarán, como se describe en Valores.

Valores

Los valores para booleano son:

Valor | Descripción
True | Los botones del control Toolbar se ajustarán si cambia el tamaño del formulario.
False | Los botones del control Toolbar no se ajustarán si cambia el tamaño del formulario.