Copyright: Copyright (c) 1996 Microsoft Corporation
Citation: Copyright (c) 1996 Microsoft Corporation


CheckBox (Control)

Muestra el estado de selección de un elemento.

Comentarios

Utilice un control CheckBox para ofrecer al usuario la posibilidad de elegir entre dos posibles valores como Sí/No, Verdadero/Falso, o Activado/Desactivado. Cuando el usuario selecciona un control CheckBox, éste muestra una marca especial (como X) y su valor actual es Sí, Verdadero, o Activado; si el usuario no selecciona el control CheckBox, éste está vacío y su valor es No, Falso, o Desactivado. Dependiendo del valor de la propiedad TripleState, un control CheckBox puede también tener un valor null.

Si un control CheckBox es dependiente de un origen de datos, al cambiar el valor, éste cambia el valor de su origen. Un control CheckBox deshabilitado muestra el valor actual, pero está atenuado y no permite realizar cambios al valor desde la interfaz de usuario.

También puede utilizar casillas de verificación dentro de un cuadro de grupo para seleccionar uno o más elementos relacionados de un grupo. Por ejemplo, puede crear un formulario de pedido que contenga una lista de elementos disponibles, con un control CheckBox delante de cada elemento. El usuario puede seleccionar uno o varios elementos determinados activando el control CheckBox correspondiente.

La propiedad predeterminada de un control CheckBox es Value.

El evento predeterminado de un control CheckBox es Clic.

Nota  El control ListBox también le permite colocar una marca de verificación mediante opciones seleccionadas. Dependiendo de su aplicación, puede utilizar el control ListBox en vez de emplear un grupo de controles de CheckBox.


ComboBox (Control)

Combina las características de un control ListBox y un control TextBox. El usuario puede escribir un valor nuevo, como en un control TextBox o bien puede seleccionar un valor existente como en un control ListBox.

Comentarios

Si un control ComboBox es dependiente de un origen de datos, inserta el valor que el usuario escribe o selecciona en el origen de datos. Si un cuadro combinado de múltiples columnas es dependiente, entonces la propiedad BoundColumn determina qué valor se almacena en el origen de datos dependiente.

La lista en un control ComboBox está formada por filas de datos. Cada fila puede tener una o más columnas, las cuales pueden mostrarse con o sin títulos. Algunas aplicaciones no son compatibles con títulos de columnas, mientras que otras proporcionan solamente una compatibilidad limitada.

La propiedad predeterminada de un control ComboBox es Value.

El evento predeterminado de un control ComboBox es Change.

Nota  Si desea que se muestre siempre más de una línea de la lista, puede utilizar un control ListBox en vez de un control ComboBox. Si desea utilizar un control ComboBox y limitar los valores a los que están incluidos en la lista, puede establecer la propiedad Style del control ComboBox de manera que el control se asemeje a un cuadro de lista desplegable.


CommandButton (Control)

Inicia, finaliza o interrumpe una acción o una serie de acciones.

Comentarios

La macro o el procedimiento de evento asignado al evento Click del control CommandButton determina qué hace el control CommandButton. Por ejemplo, puede crear un control CommandButton que abra otro formulario. También puede mostrar un texto, una imagen o ambos en un control CommandButton.

La propiedad predeterminada de un control CommandButton es Value.

El evento predeterminado de un control CommandButton es Click.


Frame (Control)

Crea un grupo de controles visuales y funcionales.

Comentarios

Todos los botones de opción de un control Frame son mutuamente exclusivos, puesto que puede utilizar el control Frame para crear un grupo de opciones. También puede utilizar un control Frame para agrupar controles con contenidos estrechamente relacionados. Por ejemplo, en una aplicación que procese pedidos de clientes, podría utilizar un control Frame para agrupar el nombre, la dirección y el número de cuenta de los clientes.

También puede utilizar un control Frame para crear un grupo de botones de alternar, los botones no son mutuamente exclusivos.

El evento predeterminado de un control Frame es Click.


Image (Control)

Muestra una imagen en un formulario.

Comentarios

El control Image permite mostrar una imagen como parte de los datos de un formulario. Por ejemplo, podría utilizar un control Image para mostrar fotografías de empleados en un formulario personal.

El control Image le permite recortar, ajustar el tamaño o hacer zoom de una imagen, pero no permite modificar el contenido de la imagen. Por ejemplo, no puede utilizar el control Image para cambiar los colores de la imagen, para hacerlo transparente o mejorar la imagen. Debe utilizar un software de edición de imágenes para este propósito.

El control Image admite los formatos de archivo siguientes:

•	*.bmp

•	*.cur

•	*.gif

•	*.ico

•	*.jpg

•	*.wmf

Nota  También puede mostrar una imagen en un control Label. Sin embargo, un control Label no le permite recortar, ajustar el tamaño ni hacer zoom de la imagen.

El evento predeterminado del control Image es Click.


ListBox (Control)

Muestra una lista de valores y le permite seleccionar uno o varios.

Comentarios

Si el control ListBox es dependiente de un origen de datos, almacena el valor seleccionado en el origen de datos.

El control ListBox puede aparecer como una lista o como un grupo de controles OptionButton o CheckBox.

La propiedad predeterminada de un control ListBox es Value.

El evento predeterminado de un control ListBox es Click.

Nota  No podrá dejar texto dentro de un control ListBox.


MultiPage (Control)

Presenta múltiples pantallas de información como un único conjunto.

Comentarios

Un control MultiPage es útil cuando se desea trabajar con gran cantidad de información que se puede clasificar en varias categorías. Por ejemplo, utilice un control MultiPage para mostrar información desde una aplicación de empleados. Una página podría contener información personal como el nombre y la dirección; otra página podría enumerar anteriores trabajos y una tercera página podría enumerar las referencias. El control MultiPage le permite combinar visualmente información relacionada, al tiempo que mantiene fácilmente accesible el registro completo.

Las páginas nuevas se agregan a la derecha en lugar de al lado de la página actualmente seleccionada.

Nota  El control MultiPage es un contenedor de una colección Pages, cada una de las cuales contiene uno o más objetos Page.

La propiedad predeterminada de un control MultiPage es Value, la cual devuelve el índice del objeto Page activo actualmente de la colección Pages de MultiPage.

El evento predeterminado de un control MultiPage es Change.


OptionButton (Control)

Muestra el estado de selección de un elemento en un grupo de opciones.

Comentarios

Utilice un control OptionButton para mostrar si está seleccionado un único elemento de un grupo. Observe que cada control OptionButton de un control Frame es mutuamente exclusivo.

Si un control OptionButton es dependiente de un origen de datos, puede mostrar el valor de este origen de datos como Sí/No, Verdadero/Falso o Activado/Desactivado. Si el usuario selecciona el control OptionButton, el valor actual es Sí, Verdadero o Activado; si el usuario no selecciona el control OptionButton, el valor es No, Falso o Desactivado. Por ejemplo, un control OptionButton en una aplicación de seguimiento de inventario podría mostrar si se ha dejado de distribuir un elemento. Si el control OptionButton depende de un origen de datos, al cambiar los valores cambia el valor de este origen de datos. Un control OptionButton deshabilitado está atenuado y no muestra ningún valor.

Dependiendo del valor de la propiedad TripleState, un control OptionButton también puede tener un valor null.

También puede utilizar un control OptionButton dentro de un cuadro de grupo para seleccionar uno o más elementos relacionados de un grupo. Por ejemplo, puede crear un formulario de pedido con una lista de elementos disponibles, con un control OptionButton delante de cada elemento. El usuario puede seleccionar un elemento determinado activando el control OptionButton correspondiente.

La propiedad predeterminada de un control OptionButton es Value.

El evento predeterminado de un control OptionButton es Click.


ScrollBar (Control)

Devuelve o establece el valor de otro control basándose en la posición del cuadro de desplazamiento.

Comentarios

Un control ScrollBar es un control autónomo que puede situar en un formulario. Visualmente es como la barra de desplazamiento que puede ver en ciertos objetos como un control ListBox o la parte desplegable de un control ComboBox. Sin embargo, a diferencia de las barras de desplazamiento de estos ejemplos, el control ScrollBar autónomo no forma parte integrante de ningún otro control.

Para utilizar el control ScrollBar para establecer o leer el valor de otro control, debe escribir el código para los métodos y eventos del control ScrollBar. Por ejemplo, si desea utilizar el control ScrollBar para actualizar el valor de un control TextBox, puede escribir código que lea la propiedad Value del control ScrollBar y establezca la propiedad Value del control TextBox.

La propiedad predeterminada de un control ScrollBar es Value.

El evento predeterminado de un control ScrollBar es Change.

Nota  Para crear un control ScrollBar horizontal o vertical, arrastre los controladores de tamaño del control ScrollBar horizontal o verticalmente en el formulario.


SpinButton (Control)

Aumenta o disminuye números.

Comentarios

Al hacer clic en un control SpinButton solamente cambia el valor del control SpinButton. Puede escribir código que utilice el control SpinButton para actualizar el valor mostrado de otro control. Por ejemplo, puede utilizar un control SpinButton para cambiar el mes, el día o el año mostrado en una fecha. También puede utilizar un control SpinButton para desplazarse a través de un intervalo de valores o una lista de elementos o para cambiar el valor mostrado en un cuadro de texto.

Para mostrar un valor actualizado por un control SpinButton, debe asignar el valor del control SpinButton a la parte visible del control, como la propiedad Caption de un control Label o la propiedad Text de un control TextBox. Para crear un control SpinButton horizontal o vertical, arrastre los controladores de tamaño del control SpinButton horizontal o verticalmente en el formulario.

La propiedad predeterminada de un control SpinButton es Value.

El evento predeterminado de un control SpinButton es Change.


TabStrip (Control)

Presenta una serie de controles relacionados como un grupo visual.

Comentarios

Puede utilizar un control TabStrip para ver conjuntos de información diferentes para controles relacionados.

Por ejemplo, los controles podrían representar información acerca de una agenda de trabajo diaria de un grupo de personas, donde cada conjunto de información correspondería a una persona diferente del grupo. Se puede establecer el título de cada ficha para mostrar un nombre en particular. Entonces, puede escribir el código que, cuando haga clic en una ficha, actualice los controles para mostrar información sobre la persona identificada en la ficha.

Nota  El control TabStrip se implementa como un contenedor de una colección Tabs, que a su vez contiene un grupo de objetos Tab.

La propiedad predeterminada de un control TabStrip es SelectedItem.

El evento predeterminado de un control TabStrip es Change.


TextBox (Control)

Muestra información de un usuario o de un conjunto de datos organizados.

Comentarios

Un control TextBox es el control utilizado más habitualmente para mostrar información escrita por un usuario. También puede mostrar un conjunto de datos como una tabla, una consulta, una hoja de cálculo o el resultado de un cálculo. Si un control TextBox es dependiente de un origen de datos, al cambiar el contenido del control TextBox también cambia el valor del origen de datos dependiente.

El formato aplicado a cualquier fragmento de texto en un control TextBox afectará a todo el texto del control. Por ejemplo, si cambia la fuente o el tamaño del punto de cualquier carácter del control, el cambio afectará a todos los caracteres del control.

La propiedad predeterminada de un control TextBox es Value.

El evento predeterminado de un control TextBox es Change.


ToggleButton (Control)

Muestra el estado de selección de un elemento.

Comentarios

Utilice un control ToggleButton para mostrar si un elemento está seleccionado. Si un control ToggleButton es dependiente de un origen de datos, muestra el valor actual del origen de datos como Sí/No, Verdadero/Falso, Activado/Desactivado o alguna otra opción de dos valores. Si el usuario selecciona el control ToggleButton, el valor actual es Sí, Verdadero o Activado; si el usuario no selecciona el control ToggleButton, el valor es No, Falso o Desactivado. Si el control ToggleButton depende de un origen de datos, al cambiar su valor cambia el valor del origen de datos. Un control ToggleButton deshabilitado muestra un valor, pero está atenuado y no permite realizar cambios desde la interfaz de usuario.

También puede utilizar un control ToggleButton dentro de un control Frame para seleccionar uno o más elementos de un grupo relacionado. Por ejemplo, puede crear un formulario de pedido con una lista de elementos disponibles, con un control ToggleButton delante de cada elemento. El usuario puede seleccionar un elemento determinado mediante la selección del control ToggleButton apropiado.

La propiedad predeterminada de un control ToggleButton es Value.

El evento predeterminado de un control ToggleButton es Click.


DataObject (Objeto)

Un área de almacenamiento de datos de texto con formato utilizada en operaciones de transferencia. También almacena una lista de formatos correspondientes a los fragmentos de texto almacenados en el objeto DataObject.

Comentarios

Un objeto DataObject puede contener un fragmento de texto para el formato de texto del Portapapeles, y un fragmento de texto para cada formato de texto adicional, como formatos personalizados y definidos por el usuario.

Un objeto DataObject es distinto que el Portapapeles. Un objeto DataObject es compatible con comandos que impliquen al Portapapeles y acciones de arrastrar y colocar para texto. Cuando inicie una operación en la que participa el Portapapeles (como GetText) o una operación de tipo arrastrar y colocar, los datos implicados en esta operación se mueven a un objeto DataObject.

El objeto DataObject funciona como el Portapapeles. Si copia una cadena de texto a un objeto DataObject, éste almacena la cadena de texto. Si copia una segunda cadena de texto del mismo formato al objeto DataObject, éste descarta la primera cadena de texto y almacena una copia de la segunda cadena. Se almacena un fragmento de texto de un formato especificado y se mantiene el texto de la operación más reciente.


Font (Objeto)

Define las características del texto utilizado por un control o un formulario.

Comentarios

Cada control o formulario tiene su propio objeto Font que le permite establecer sus características de texto independientemente de las características definidas para otros controles y formularios. Utilice las propiedades de fuente para especificar el nombre de la fuente, poner texto en negrita o subrayado, o ajustar el tamaño del texto.

Nota  Las propiedades de fuente de su formulario o contenedor determinan los atributos de fuente predeterminados de los controles que sitúe en el formulario.

La propiedad predeterminada de un objeto Font es Name.


Label (Control)

Muestra un texto descriptivo.

Comentarios

Un control Label en un formulario muestra un texto descriptivo como títulos, leyendas, imágenes o breves instrucciones. Por ejemplo, las etiquetas para una libreta de direcciones podrían incluir un control Label para el nombre, la calle o la ciudad. Un control Label no muestra valores de orígenes de datos ni expresiones; es siempre independiente y no cambia cuando se mueve de un registro a otro.

La propiedad predeterminada de un control Label es Caption.

El evento predeterminado de un control Label es Click.


Page (Objeto)

Una página de un control MultiPage y un único miembro de una colección Pages.

Comentarios

Cada objeto Page contiene su propio conjunto de controles y no depende necesariamente de otras páginas en la colección para recopilar información. Un objeto Page hereda algunas propiedades de su contenedor; el contenedor establece el valor de cada propiedad heredada.

Un objeto Page tiene un nombre y un valor de índice únicos dentro de la colección Pages. Puede referirse a un objeto Page por su nombre o por su valor de índice. El índice del primer objeto Page de una colección es 0, el índice del segundo objeto Page es 1, y así sucesivamente. Cuando dos objetos Page tienen el mismo nombre, debe referirse a cada objeto Page por su valor de índice. Haciendo referencia al nombre en código accederá sólo al primer objeto Page que utilice dicho nombre.

El nombre predeterminado del primer objeto Page es Page1 y el predeterminado del segundo objeto Page es Page2.


Tab (Objeto)

Un objeto Tab es un miembro individual de una colección Tabs.

Comentarios

Visualmente, un objeto Tab se presenta como un rectángulo resaltado de un área rectangular mayor o como un botón adyacente a un área rectangular.

A diferencia de un objeto Page, un objeto Tab no contiene controles. Los controles que aparecen dentro de la zona dependiente del control TabStrip están contenidos en el formulario, como el propio control TabStrip.

Cada objeto Tab tiene su propio conjunto de propiedades, pero no tiene métodos ni eventos. Debe utilizar eventos del control TabStrip apropiado para iniciar el proceso de un objeto Tab individual.

Cada objeto Tab tiene un nombre y un valor de índice únicos dentro de la colección. Puede referirse a un objeto Tab por su nombre o su valor de índice. El índice del primer objeto Tab es 0, del segundo objeto Tab es 1, y así sucesivamente. Cuando dos objetos Tab tienen el mismo nombre, debe hacer referencia a cada objeto Tab por su valor de índice. Haciendo referencia al nombre en código accederá sólo al primer objeto Tab que utilice dicho nombre.


Controls (Colección)

Incluye todos los controles contenidos en un objeto.

Comentarios

Cada control de la colección Controls de un objeto tiene un índice único cuyo valor puede ser un número entero o una cadena de texto. El valor de índice del primer control de una colección es 0, el del segundo control es 1, y así sucesivamente. Este valor indica el orden en el cual se agregaron los controles a la colección.

Si el índice es una cadena, ésta representa el nombre del control. La propiedad Name de un control también especifica el nombre del control.

Puede utilizar la colección Controls para enumerar o contar controles individuales y para establecer sus propiedades. Por ejemplo, puede enumerar la colección Controls de un determinado formulario y establecer la propiedad Height de cada control a un valor especificado.

Nota  La instrucción For Each...Next es útil para enumerar una colección.


Pages (Colección)

Una colección Pages incluye todas las páginas de un control MultiPage.

Comentarios

Cada colección Pages proporciona las características para administrar el número de páginas de la colección e identificar la página que actualmente está en uso.

Un objeto Page tiene un nombre y un valor de índice únicos dentro de una colección Pages. Puede referirse a un objeto Page por su nombre o por su valor de índice. El índice del primer objeto Page de una colección es 0, el del segundo objeto Page es 1, y así sucesivamente. El nombre predeterminado de la primera página es Page1, y de la segunda página es Page2.

El valor predeterminado de la colección Pages identifica el objeto actual Page de una colección.


Tabs (Colección)

Una colección Tabs incluye todos los Tabs de un control TabStrip.

Comentarios

Cada colección Tabs proporciona las características para administrar el número de fichas de la colección e identificar la ficha que actualmente está en uso.

El valor predeterminado de la colección Tabs identifica el objeto actual Tab de una colección.

Un objeto Tab tiene un nombre y un valor de índice únicos dentro de una colección Tabs. Puede referirse a un objeto Tab por su nombre o por su valor de índice. El valor de índice refleja la posición ordinal del objeto Tab dentro de la colección. El índice del primer objeto Tab de una colección es 0, el del segundo objeto Tab es 1; y así sucesivamente.


Introducción al modelo de objetos Microsoft Forms


AddControl (Evento)

Se produce cuando se inserta un control en un formulario, un control Frame, o un objeto Page de un control MultiPage.

Sintaxis

Para el control Frame
Private Sub objeto_AddControl( )

Para el control MultiPage
Private Sub objeto_AddControl( índice As Long, control As Control)

La sintaxis del evento AddControl consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
índice	Requerido. El índice del objeto Page que contendrá el nuevo control.
control	Requerido. El control que se agrega.
Comentarios

El evento AddControl se produce cuando se agrega un control en tiempo de ejecución. Este evento no se inicia cuando se agrega un control en tiempo de diseño, ni cuando se carga por primera vez el formulario y se muestra en tiempo de ejecución.

La acción predeterminada de este evento es agregar un control al formulario especificado, control Frame, o control MultiPage.

El método Add inicia el evento AddControl.


AfterUpdate (Evento)

Se produce después de que se cambian los datos de un control mediante la interfaz de usuario.

Sintaxis

Private Sub objeto_AfterUpdate( )

La sintaxis del evento AfterUpdate consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El evento AfterUpdate se produce si el control es dependiente (es decir, cuando la propiedad RowSource especifica un origen de datos para el control). Este evento no se puede cancelar. Si desea cancelar la actualización (para restaurar el valor anterior del control), utilice el evento BeforeUpdate y establezca el argumento Cancelar a True.

El evento AfterUpdate se produce después del evento BeforeUpdate y antes del evento Exit para el control actual y antes del evento Enter para el siguiente control en el orden de tabulación.


BeforeDragOver (Evento)

Se produce cuando se está ejecutando una operación de arrastrar y colocar.

Sintaxis

Para el control Frame
Private Sub objeto_BeforeDragOver( ByVal Cancelar As MSForms.ReturnBoolean, control As Control, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal EstadoArrastrar As fmDragState, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para el control MultiPage
Private Sub objeto_BeforeDragOver( índice As Long, ByVal Cancelar As MSForms.ReturnEffectBoolean, control As Control, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal EstadoArrastrar As fmDragState, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para el control TabStrip
Private Sub objeto_BeforeDragOver( índice As Long, ByVal Cancelar As MSForms.ReturnEffectBoolean, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal EstadoArrastrar As fmDragState, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para otros controles
Private Sub objeto_BeforeDragOver( ByVal Cancelar As MSForms.ReturnEffectBoolean, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal EstadoArrastrar As fmDragState, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

La sintaxis del evento BeforeDragOver consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Índice	Requerido. El índice del objeto Page en un control MultiPage al que afectará la operación de arrastrar y colocar.
Cancelar	Requerido. Estado del evento. False indica que el control debe manipular el evento (predeterminado). True indica que la aplicación manipula el evento.
Control	Requerido. El control que se está arrastrando.
Datos	Requerido. Los datos que se arrastran en una operación de arrastrar y colocar. Los datos se empaquetan en un objeto DataObject.
X, Y	Requerido. Las coordenadas horizontal y vertical de la posición del control. Ambas coordenadas se miden en puntos. X se mide desde el borde izquierdo del control; Y se mide desde la parte superior del control.
EstadoArrastrar	Requerido. Estado de la transición de los datos que se arrastran.
Efecto	Requerido. Operaciones admitidas por el origen de colocación.
Mayúsculas	Requerido. Especifica el estado de las teclas MAYÚSCULAS, CTRL y MAYÚSCULAS, CTRL y ALT.
Valores

Los valores para EstadoArrastrar son:

Constante	Valor	Descripción
fmDragStatusEnter	0	El puntero del mouse está dentro del intervalo de un destino.
FmDragStatusLeave	1	El puntero del mouse está fuera del intervalo de un destino.
FmDragStatusOver	2	El puntero del mouse está en una posición nueva, pero permanece dentro del intervalo del mismo destino.
Los valores para Efecto son:

Constante	Valor	Descripción
fmDropEffectNone	0	No copia ni mueve el origen de colocación al destino deseado.
FmDropEffectCopy	1	Copia el origen de colocación al destino deseado.
FmDropEffectMove	2	Mueve el origen de colocación al destino deseado.
FmDropEffectCopyOrMove	3	Copia o mueve el origen de colocación al destino deseado.
Los valores para Mayúsculas son:

Constante	Valor	Descripción
fmShiftMask	1	Se presionó MAYÚSCULAS.
FmCtrlMask	2	Se presionó CTRL.
FmAltMask	4	Se presionó ALT.
Comentarios

Utilice este evento para controlar el puntero del mouse según se entra, sale o descansa directamente sobre un destino válido. Cuando se está ejecutando una operación de arrastrar y colocar, el sistema inicia este evento cuando el usuario mueve el mouse o presiona o suelta los botones del mismo. La posición del puntero del mouse determina el objeto de destino que recibe este evento. Puede determinar el estado del puntero del mouse examinando el argumento EstadoArrastrar.

Cuando un control manipula este evento, puede actualizar el argumento Efecto para identificar la acción de arrastrar y colocar que se va a ejecutar. Cuando Efecto se establece a fmDropEffectCopyOrMove, el origen de arrastrar admite una operación de copiar (fmDropEffectCopy), mover (fmDropEffectMove) o cancelar (fmDropEffectNone).

Cuando Efecto se establece a fmDropEffectCopy, el origen de arrastrar admite una operación de cancelar (fmDropEffectNone).

Cuando Efecto se establece a fmDropEffectMove, el origen de arrastrar admite una operación de mover o cancelar (fmDropEffectNone).

Cuando Efecto se establece a fmDropEffectNone. el origen de arrastrar admite una operación de cancelar.

La mayoría de los controles no admiten arrastrar y colocar mientras Cancelar es False, que es el valor predeterminado. Esto quiere decir que el control rechaza los intentos de arrastrar y colocar algo en el control y el control no inicia el evento BeforeDropOrPaste. Los controles TextBox y ComboBox son las excepciones; éstos admiten operaciones de arrastrar y colocar  incluso aunque Cancelar sea False.


BeforeDropOrPaste (Evento)

Se produce cuando el usuario está a punto de colocar o pegar datos en un objeto.

Sintaxis

Para el control Frame
Private Sub objeto_BeforeDropOrPaste( ByVal Cancelar As MSForms.ReturnBoolean, control As Control, ByVal Acción As fmAction, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para el control MultiPage
Private Sub objeto_BeforeDropOrPaste( índice As Long, ByVal Cancelar As MSForms.ReturnBoolean, control As Control, ByVal Acción As fmAction, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para el control TabStrip
Private Sub objeto_BeforeDropOrPaste( índice As Long, ByVal Cancelar As MSForms.ReturnBoolean, ByVal Acción As fmAction, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

Para otros controles
Private Sub objeto_BeforeDropOrPaste( ByVal Cancelar As MSForms.ReturnBoolean, ByVal Acción As fmAction, ByVal Datos As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Efecto As MSForms.ReturnEffect, ByVal Mayúsculas As fmShiftState)

La sintaxis del evento BeforeDropOrPaste consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Índice	Requerido. El índice del objeto Page en un control MultiPage al que afectará la operación de colocar o pegar.
Cancelar	Requerido. Estado del evento. False indica que el control debe manipular el evento (predeterminado). True indica que la aplicación manipula el evento.
Control	Requerido. El control de destino.
Acción	Requerido. Indica el resultado, basado en la configuración de teclado actual, de la operación de arrastrar y colocar pendiente.
Datos	Requerido. Los datos que se arrastran en una operación de arrastrar y colocar. Los datos se empaquetan en un objeto DataObject.
X, Y	Requerido. La posición horizontal y vertical del puntero del mouse cuando se coloca. Las dos coordenadas se miden en puntos. X se mide desde el límite izquierdo del control e Y se mide desde la parte superior del mismo.
Efecto	Requerido. Efecto de la operación de arrastrar y colocar en el control de destino.
Mayúsculas	Requerido. Especifica el estado de las teclas MAYÚSCULAS, CTRL y MAYÚSCULAS, CTRL y ALT.
Valores

Los valores para Acción son:

Constante	Valor	Descripción
fmActionPaste	2	Pega el objeto seleccionado en el destino de colocación.
FmActionDragDrop	3	Indica que el usuario ha arrastrado el objeto desde su origen al destino de colocación y lo ha colocado en el destino deseado.
Los valores para Efecto son:

Constante	Valor	Descripción
fmDropEffectNone	0	No copia ni mueve el origen de colocación al destino deseado.
FmDropEffectCopy	1	Copia el origen de colocación al destino deseado.
FmDropEffectMove	2	Mueve el origen de colocación al destino deseado.
FmDropEffectCopyOrMove	3	Copia o mueve el origen de colocación al destino deseado.
Los valores para Mayúsculas son:

Constante	Valor	Descripción
fmShiftMask	1	Se presionó MAYÚSCULAS.
FmCtrlMask	2	Se presionó CTRL.
FmAltMask	4	Se presionó ALT.
Comentarios

Para un control MultiPage o TabStrip, Visual Basic para Aplicaciones inicia este evento cuando transfiere un objeto de datos al control.

Para otros controles, el sistema inicia este evento inmediatamente antes que la operación de colocar o pegar.

Cuando un control manipula este evento, puede actualizar el argumento Acción para identificar la operación de arrastrar y colocar que se va a ejecutar. Cuando Efecto se establece a fmDropEffectCopyOrMove, puede asignar fmDropEffectNone, fmDropEffectCopy o fmDropEffectMove a Acción. Cuando Efecto se establece a fmDropEffectCopy o fmDropEffectMove, puede reasignar Acción a fmDropEffectNone. No puede reasignar Acción cuando Efecto se establece a fmDropEffectNone.


BeforeUpdate (Evento)

Se produce antes de que se cambien los datos en un control.

Sintaxis

Private Sub objeto_BeforeUpdate( ByVal Cancelar As MSForms.ReturnBoolean)

La sintaxis del evento BeforeUpdate consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Cancelar	Requerido. Estado del evento. False indica que el control debe manipular el evento (predeterminado). True cancela la actualización e indica que la aplicación debe manipular el evento.
Comentarios

El evento BeforeUpdate se produce incluso aunque el control sea dependiente (es decir, cuando la propiedad RowSource especifica un origen de datos para el control). Este evento se produce antes que los eventos AfterUpdate y Exit para el control (y antes que el evento Enter para el siguiente control que recibe el enfoque).

Si se establece el argumento Cancelar a True, el enfoque permanece en el control y no se produce el evento AfterUpdate ni el evento Exit.


Change (Evento)

Se produce cuando cambia el valor de la propiedad Value.

Sintaxis

Private Sub objeto_Change( )

La sintaxis del evento Change consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores

El evento Change se produce cuando cambia el valor de la propiedad Value, sin tener en cuenta si el cambio proviene de una ejecución de código o una acción del usuario en la interfaz.

Aquí tiene algunos ejemplos de las acciones que cambian la propiedad Value:

•	Hacer clic en un control CheckBox, OptionButton o ToggleButton.

•	Escribir o seleccionar un valor de texto nuevo en un control ComboBox, ListBox o TextBox.

•	Seleccionar una ficha diferente en un control TabStrip.

•	Mover el cuadro de desplazamiento en un control ScrollBar.

•	Hacer clic en la flecha hacia arriba o la flecha hacia abajo en un control SpinButton.

•	Seleccionar una página diferente en un control MultiPage.

Comentarios

El procedimiento de evento Change puede sincronizar o coordinar los datos mostrados entre los controles. Por ejemplo, puede utilizar el procedimiento de evento Change de un control ScrollBar para actualizar el contenido de un control TextBox que muestre el valor del control ScrollBar. O bien, puede utilizar un procedimiento de evento Change para mostrar datos y fórmulas en el área de trabajo y los resultados en otra área distinta.

Nota  En algunos casos, el evento Click también se puede producir cuando cambia la propiedad Value. Sin embargo, utilizar el evento Change es la técnica preferida para detectar un nuevo valor de una propiedad.


Click (Evento)

Se produce en uno de estos dos casos:

•	El usuario hace clic en un control con el mouse.

•	El usuario selecciona definitivamente un valor para un control con más de un valor posible.

Sintaxis

Para un control MultiPage, TabStrip
Private Sub objeto_Click( índice As Long)

Para todos los demás controles
Private Sub objeto_Click( )

La sintaxis del evento Click consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Índice	Requerido. El índice de la página o la ficha en un control MultiPage o TabStrip asociado con este evento.
Comentarios

De los dos casos en que se produce el evento Click, el primero se aplica a los controles CommandButton, Frame, Image, Label, ScrollBar y SpinButton. El segundo caso se aplica a los controles CheckBox, ComboBox, ListBox, MultiPage, TabStrip y ToggleButton. También se aplica a un control OptionButton cuando cambia el valor a True.

Estos son ejemplos de acciones que inician el evento Click:

•	Hacer clic en un área en blanco de un formulario o en un control deshabilitado (distinto de un cuadro de lista) en el formulario.

•	Hacer clic en un control CommandButton. Si el botón de comando todavía no tiene el enfoque, se produce el evento Enter antes del evento Click.

•	Presionar BARRA ESPACIADORA cuando tiene el enfoque un control CommandButton.

•	Hacer clic con el botón primario del mouse.

•	Presionar ENTRAR en un formulario que tiene un botón de comando cuya propiedad Default tiene el valor True, mientras que ningún otro botón de comando tiene el enfoque.

•	Presionar ESC en un formulario que tiene un botón de comando cuya propiedad Cancel tiene el valor True, mientras que ningún otro botón de comando tiene el enfoque.

•	Presionar la tecla de aceleración de un control.

Cuando el evento Click es el resultado de hacer clic en un control, la secuencia de eventos anteriores al evento Click es:

1.	MouseDown

2.	MouseUp

3.	Click

Para algunos controles, el evento Click se produce cuando cambia la propiedad Value. Sin embargo, utilizar el evento Change es la preferida para detectar un nuevo valor de una propiedad técnica. Estos son ejemplos de acciones que inician el evento Click debido a que asignan valores nuevos a un control:

•	Hacer clic en una página o ficha de un control MultiPage o TabStrip. La propiedad Value para estos controles refleja el control Page o Tab activo. Hacer clic en la página o la ficha activa no cambia el valor del control y tampoco inicia el evento Click.

•	Hacer clic en un control CheckBox o ToggleButton, presionar la BARRA ESPACIADORA cuando uno de estos controles tiene el enfoque, presionar la tecla de aceleración de uno de estos controles o cambiar el valor del control en código.

•	Cambiar el valor de un control OptionButton a True. Establecer el valor de un control OptionButton de un grupo a True coloca a el valor de los otros botones del grupo a False, pero el evento Click sólo se produce para el botón cuyo valor cambia a True.

•	Seleccionar un valor para un control ComboBox o ListBox para que coincida sin duda alguna con un elemento de la lista desplegable del control. Por ejemplo, si una lista no está ordenada, La primera coincidencia de los caracteres escritos en el área de edición puede no ser la única coincidencia de la lista, por lo que al elegir un valor de estas características no se inicia el evento Click. En una lista ordenada, puede utilizar la coincidencia de entradas para asegurar que un valor seleccionado es la única coincidencia con el texto que escribe el usuario.

No se iniciará el evento Click si Value contiene Null.

Nota  Hacer clic con el botón primario cambia el valor de un control, por lo que se inicia el evento Click. Hacer clic con el botón secundario no cambia el valor de un control, así que no se inicia el evento Click.


DblClick (Evento)

Se produce cuando el usuario señala a un objeto y hace clic dos veces con un botón del mouse.

Sintaxis

Para los controles MultiPage, TabStrip
Private Sub objeto_DblClick( índice As Long, ByVal Cancelar As MSForms.ReturnBoolean)

Para otros controles
Private Sub objeto_DblClick( ByVal Cancelar As MSForms.ReturnBoolean)

La sintaxis del evento DblClick consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Índice	Requerido. La posición de un objeto Page o Tab dentro de una colección Pages o Tabs.
Cancelar	Requerido. Estado del evento. False indica que el control debería manipular el evento (predeterminado). True indica que la aplicación manipula el evento.
Comentarios

Para que se produzca este evento, el doble clic debe ejecutarse dentro del periodo de tiempo especificado por la configuración de velocidad de doble clic del sistema.

Para los controles que son compatibles con el evento Click, la siguiente secuencia de eventos desencadena al evento DblClick:

1.	MouseDown

2.	MouseUp

3.	Click

4.	DblClick

Si un control, como TextBox, no es compatible con el evento Click, éste se omite del orden de eventos que conducen al evento DblClick.

Si Cancelar devuelve el valor True cuando el usuario hace clic dos veces, el control pasa por alto el segundo clic. Esto es útil si el segundo clic invierte el efecto del primero, como hacer doble clic en un botón de alternar. El argumento Cancelar permite que el formulario pase por alto el segundo clic, así que hacer clic y hacer doble clic en el botón tiene el mismo efecto.


DropButtonClick (Evento)

Se produce cada vez que se muestra o se oculta una lista desplegable.

Sintaxis

Private Sub objeto_DropButtonClick( )

La sintaxis del evento DropButtonClick consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Puede iniciar el evento DropButtonClick mediante código o ejecutando ciertas acciones en la interfaz de usuario.

En código, una llamada al método DropDown inicia el evento DropButtonClick.

En la interfaz de usuario, cualquiera de las acciones siguientes inicia el evento:

•	Hacer clic en el botón de lista desplegable del control.

•	Presionar F4.

Cualquiera de las acciones anteriores, en código o en la interfaz, hacen que en el control aparezca el cuadro desplegable. El sistema inicia el evento DropButtonClick cuando el cuadro de lista desplegable desaparece.


Enter, Exit (Eventos)

El evento Enter se produce antes de que un control reciba realmente el enfoque desde un control del mismo formulario. El evento Exit se produce inmediatamente antes que un control pierda el enfoque en favor de otro control del mismo formulario.

Sintaxis

Private Sub objeto_Enter( )

Private Sub objeto_Exit( ByVal Cancelar As MSForms.ReturnBoolean)

La sintaxis de los eventos Enter y Exit consta de las siguientes partes:

Partes	Descripción
objeto	Requerido. Un nombre de objeto válido.
Cancelar	Requerido. Estado del evento. False indica que el control debería manipular el evento (predeterminado). True indica que la aplicación manipula el evento y el enfoque debería permanecer en el control actual.
Comentarios

Los eventos Enter y Exit son similares a los eventos GotFocus y LostFocus de Visual Basic. A diferencia de GotFocus y LostFocus, los eventos Enter y Exit no se producen cuando un formulario recibe o pierde el enfoque.

Por ejemplo, suponga que activa la casilla de verificación que inicia un evento Enter. Si selecciona otro control en el mismo formulario, se inicia el evento Exit para la casilla de verificación (porque el enfoque se mueve a un objeto diferente en el mismo formulario) y el evento Enter se produce para el segundo control del formulario.

Puesto que el evento Enter se produce antes de que se mueva el enfoque a un control en particular, puede utilizar un procedimiento de evento Enter para mostrar instrucciones; por ejemplo, podría utilizar una macro o un procedimiento de evento para mostrar un formulario pequeño o un cuadro de mensaje identificando el tipo de datos que el control contiene habitualmente.

Nota  Para evitar que el control pierda el enfoque, asigne True al argumento Cancelar del evento Exit.


Error (Evento)

Se produce cuando un control detecta un error y no puede devolver información del error al programa que lo ha llamado.

Sintaxis

Para un control MultiPage
Private Sub objeto_Error( índice As Long, ByVal Número As Integer, ByVal Descripción As MSForms.ReturnString, ByVal CódigoO As SCode, ByVal Origen As String, ByVal ArchivoAyuda As String, ByVal ContextoAyuda As Long, ByVal MostrarCancelar As MSForms.ReturnBoolean)

Para otros controles
Private Sub objeto_Error( ByVal Número As Integer, ByVal Descripción As MSForms.ReturnString, ByVal CódigoO As SCode, ByVal Origen As String, ByVal ArchivoAyuda As String, ByVal ContextoAyuda As Long, ByVal MostrarCancelar As MSForms.ReturnBoolean)

La sintaxis del evento Error consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Índice	Requerido. El índice de la página de un control MultiPage asociado con este evento.
Número	Requerido. Especifica un valor único que el control utiliza para identificar el error.
Descripción	Requerido. Una descripción textual del error.
CódigoO	Requerido. Especifica el código de estado OLE para el error. Los 16 bits de orden bajo especifican un valor que es idéntico al argumento Número.
Origen	Requerido. La cadena que identifica el control que inició el evento.
ArchivoAyuda	Requerido. Especifica un nombre de ruta completo para el archivo de Ayuda que describe el error.
ContextoAyuda	Requerido. Especifica el Id de contexto del tema del archivo de Ayuda que contiene una descripción del error.
MostrarCancelar	Requerido. Especifica si se muestra o no la cadena de error en un cuadro de mensaje.
Comentarios

El código escrito para el evento Error determina cómo responde el control a la condición de error.

La capacidad de manipular condiciones de error varía de una aplicación a otra. El evento Error se inicia cuando se produce un error que la aplicación no está preparada para manipular.


KeyDown, KeyUp (Eventos)

Se producen en secuencia cuando un usuario presiona y suelta una tecla. El evento KeyDown se produce cuando el usuario presiona una tecla. El evento KeyUp se produce cuando el usuario suelta una tecla.

Sintaxis

Private Sub objeto_KeyDown( ByVal CódigoTecla As MSForms.ReturnInteger, ByVal Mayúsculas As fmShiftState)

Private Sub objeto_KeyUp( ByVal CódigoTecla As MSForms.ReturnInteger, ByVal Mayúsculas As fmShiftState)

La sintaxis de los eventos KeyDown y KeyUp consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
CódigoTecla	Requerido. Un entero que representa el código de la tecla que se presionó o soltó.
Mayúsculas	Requerido. El estado de MAYÚSCULAS, CTRL y ALT.
Valores

Los valores para Mayúsculas son:

Constante	Valor	Descripción
fmShiftMask	1	Se presionó MAYÚSCULAS.
FmCtrlMask	2	Se presionó CTRL.
FmAltMask	4	Se presionó ALT.
Comentarios

El evento KeyDown se produce cuando el usuario presiona una tecla en un formulario que está en ejecución mientras que el formulario o un control del mismo tiene el enfoque. Los eventos KeyDown y KeyPress se alternan repetidamente hasta que el usuario suelta la tecla, momento en el que se produce el evento KeyUp. El formulario o el control que tiene el enfoque recibe todas las pulsaciones. Un formulario únicamente puede tener el enfoque si no tiene controles o están deshabilitados todos sus controles visibles.

Estos eventos también se producen si se envía una pulsación de teclas a un formulario o un control utilizando la acción SendKeys en una macro o la instrucción SendKeys en Visual Basic.

Los eventos KeyDown y KeyUp se utilizan habitualmente para reconocer o distinguir entre:

•	Teclas de caracteres extendidos, como las teclas de función.

•	Teclas de desplazamiento, como INICIO, FIN, AV PÁG, RE PÁG, FLECHA ARRIBA, FLECHA ABAJO, FLECHA DERECHA, FLECHA IZQUIERDA y TAB.

•	Combinaciones de teclas y modificadores de teclado estándares (MAYÚSCULAS, CTRL o ALT).

•	Las teclas numéricas del teclado numérico o alfabético.

Los eventos KeyDown y KeyUp no se producen bajo las siguientes circunstancias:

•	El usuario presiona ENTRAR en un formulario con un botón de comando cuya propiedad Default está establecida a True.

•	El usuario presiona ESC en un formulario con un botón de comando cuya propiedad Cancel está establecida a True.

Los eventos KeyDown y KeyPress se producen cuando se presiona o se envía una tecla ANSI. El evento KeyUp se produce después de cualquier evento para un control provocado por la pulsación o envío de la tecla. Si la pulsación de una tecla hace que el enfoque se mueva de un control a otro, el evento KeyDown se produce para el primer control, mientras que se los eventos KeyPress y KeyUp se producen para el segundo control.

La secuencia de los eventos relacionados con el teclado es:

1.	KeyDown

2.	KeyPress

3.	KeyUp

Nota  Los eventos KeyDown y KeyUp se aplican solamente a formularios y controles de un formulario. Para interpretar caracteres ANSI o encontrar el carácter ANSI correspondiente a la tecla presionada, utilice el evento KeyPress.


KeyPress (Evento)

Se produce cuando el usuario presiona una tecla ANSI.

Sintaxis

Private Sub objeto_KeyPress( ByVal TeclaANSI As MSForms.ReturnInteger)

La sintaxis del evento KeyPress consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
TeclaANSI	Requerido. Un valor entero que representa un código de tecla ANSI numérico estándar.
Comentarios

El evento KeyPress se produce cuando el usuario presiona una tecla que genera un carácter escribible (una tecla ANSI) en el formulario que se está ejecutando mientras el formulario o un control del mismo tiene el enfoque. El evento se puede producir antes o después de que se suelte la tecla. Este evento también se produce si envía una pulsación de tecla ANSI a un formulario o a un control utilizando la acción SendKeys en una macro o la instrucción SendKeys en Visual Basic.

Un evento KeyPress puede producirse cuando se presiona cualquiera de las siguientes teclas:

•	Cualquier carácter imprimible del teclado.

•	CTRL combinada con un carácter del alfabeto estándar.

•	CTRL combinada con cualquier carácter especial.

•	RETROCESO.

•	ESC.

Un evento KeyPress no se produce bajo las siguientes condiciones:

•	Al presionar TAB.

•	Al presionar ENTER.

•	Al presionar una flecha de dirección.

•	Cuando una pulsación de una tecla provoca que el enfoque se mueva de un control a otro.

Nota  RETROCESO forma parte del juego de caracteres ANSI, pero SUPR no. Eliminar un carácter en un control utilizando RETROCESO provoca un evento KeyPress; mientras que eliminar un carácter utilizando SUPR no lo provoca.

Cuando un usuario mantiene presionada una tecla que genera un código de tecla ANSI, los eventos KeyDown y KeyPress se repiten alternativamente. Cuando el usuario suelta la tecla, se produce el evento KeyUp. El formulario o control, que tiene el enfoque recibe todas las pulsaciones de teclas. Un formulario puede tener el enfoque únicamente si no tiene controles o si todos sus controles visibles están deshabilitados.

La acción predeterminada para el evento KeyPress es procesar el código de evento que corresponde a la tecla que se presionó. TeclaANSI indica el carácter ANSI que corresponde a la tecla o combinación de teclas presionadas. El evento KeyPress interpreta las mayúsculas y minúsculas de cada carácter como códigos de tecla separados y, por tanto, como dos caracteres distintos.

Para responder al estado físico del teclado, o para manipular pulsaciones de teclas no reconocidas por el evento KeyPress, como teclas de función, teclas de desplazamiento y cualquier combinación de éstas con los modificadores de teclado (ALT, MAYÚSCULAS o CTRL), utilice los procedimientos de evento KeyDown y KeyUp.

La secuencia de eventos relacionados con el teclado es:

1.	KeyDown

2.	KeyPress

3.	KeyUp


Layout (Evento)

Se produce cuando cambia el tamaño de un formulario, un control Frame o un control MultiPage.

Sintaxis

Para un control MultiPage
Private Sub objeto_Layout( índice As Long)

Para todos los demás controles
Private Sub objeto_Layout( )

La sintaxis del evento Layout consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
índice	Requerido. El índice de la página en un control MultiPage que cambió de tamaño.
Comentarios

La acción predeterminada del evento Layout es calcular las nuevas posiciones de los controles y volver a dibujar la pantalla.

Un usuario puede iniciar el evento Layout cambiando el tamaño de un control.

Para los controles que sean compatibles con la propiedad AutoSize, el evento Layout se inicia cuando AutoSize cambia el tamaño del control. Esto ocurre cuando el usuario cambia el valor de una propiedad que afecta al tamaño de un control. Por ejemplo, aumentar el tamaño de Font de un control TextBox o Label puede cambiar significativamente las dimensiones del control e iniciar un evento Layout.


MouseDown, MouseUp (Eventos)

Se produce cuando el usuario hace clic con un botón del mouse. MouseDown se produce cuando el usuario presiona el botón del mouse; MouseUp se produce cuando el usuario suelta el botón del mouse.

Sintaxis

Para un control MultiPage, TabStrip
Private Sub objeto_MouseDown( índice As Long, ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub objeto_MouseUp( índice As Long, ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

Para otros controles
Private Sub objeto_MouseDown( ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub objeto_MouseUp( ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

La sintaxis de los eventos MouseDown y MouseUp consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
índice	Requerido. El índice de la página o de la ficha en un control MultiPage o TabStrip con el evento especificado.
Botón	Requerido. Un valor entero que identifica qué botón del mouse provocó el evento.
Mayúsculas	Requerido. El estado de MAYÚSCULAS, CTRL y ALT.
X, Y	Requerido. La posición horizontal o vertical, en puntos, desde el borde izquierdo o superior del formulario, control  Frame o control Page.
Valores

Los valores para Botón son:

Constante	Valor	Descripción
fmButtonLeft	1	Se presionó el botón izquierdo.
fmButtonRight	2	Se presionó el botón derecho.
fmButtonMiddle	4	Se presionó el botón central.
Los valores para Mayúsculas son:

Valor	Descripción
1	Se presionó MAYÚSCULAS.
2	Se presionó CTRL.
3	Se presionaron MAYÚSCULAS y CTRL.
4	Se presionó ALT.
5	Se presionaron ALT y MAYÚSCULAS.
6	Se presionaron ALT y CTRL.
7	Se presionaron ALT, MAYÚSCULAS y CTRL.
Puede identificar modificadores de teclado individuales utilizando las siguientes constantes:

Constante	Valor	Descripción
fmShiftMask	1	Máscara para detectar MAYÚSCULAS.
fmCtrlMask	2	Máscara para detectar CTRL.
fmAltMask	4	Máscara para detectar ALT.
Comentarios

Para un MultiPage, el evento MouseDown se produce cuando el usuario presiona un botón del mouse sobre el control.

Para un control TabStrip, el argumento del índice identifica la ficha en la que el usuario hizo clic. Un índice –1 indica que el usuario no hizo clic en ninguna ficha. Por ejemplo, si no hay fichas en la esquina superior derecha del control, al hacer clic en esa esquina se establece el índice a–1.

Para un formulario, el usuario puede generar los eventos MouseDown y MouseUp presionando y soltando un botón del mouse en un área vacía, en un selector de registro o en la barra de desplazamiento del formulario.

La secuencia de eventos relacionados con el mouse es la siguiente:

1.	MouseDown

2.	MouseUp

3.	Click

4.	DblClick

5.	MouseUp

Los procedimientos de evento MouseDown o MouseUp especifica acciones que se producen cuando se presiona o suelta un botón del mouse. Los eventos MouseDown y MouseUp le permiten distinguir entre los botones izquierdo, derecho y central del mouse. Puede también escribir código para combinaciones de pulsaciones de teclado y mouse que utilicen  los modificadores de teclado MAYÚSCULAS, CTRL y ALT.

Si se presiona un botón del mouse mientras el puntero del mouse está sobre un control, ese objeto "captura" el mouse y recibe todos los eventos del mouse hasta el último evento MouseUp incluido. Esto implica que las coordenadas del puntero del mouse X, Y devueltas por un evento de mouse pueden no estar siempre dentro de los límites del objeto que los recibe.

Si se presionan sucesivamente varios botones del mouse, el objeto que lo captura recibe todos los eventos de mouse sucesivos hasta que se suelten todos los botones.

Utilice el argumento Mayúsculas para identificar el estado de MAYÚSCULAS, CTRL y ALT cuando se produce un evento MouseDown o MouseUp. Por ejemplo, si se presionan CTRL y ALT, el valor de Mayúsculas es 6.


MouseMove (Evento)

Se produce cuando el usuario mueve el mouse.

Sintaxis

Para un control MultiPage, TabStrip
Private Sub objeto_MouseMove( índice As Long, ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

Para otros controles
Private Sub objeto_MouseMove( ByVal Botón As fmButton, ByVal Mayúsculas As fmShiftState, ByVal X As Single, ByVal Y As Single)

La sintaxis del evento MouseMove consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
índice	Requerido. El índice de la página en un control MultiPage o TabStrip asociado con este evento.
Botón	Requerido. Un valor entero que identifica el estado de los botones del mouse.
Mayúsculas	Requerido. Especifica el estado de MAYÚSCULAS, CTRL y ALT.
X, Y	Requerido. La posición horizontal o vertical, medida en puntos, desde el borde izquierdo o superior del control.
Valores

El argumento índice especifica en qué página o ficha se hizo clic. Un valor –1 designa que el usuario no hizo clic en ninguno de los controles o fichas.

Los valores para Botón son:

Valor	Descripción
0	No está presionado ningún botón.
1	Está presionado el botón izquierdo.
2	Está presionado el botón derecho.
3	Están presionados los botones izquierdo y derecho.
4	Está presionado el botón central.
5	Están presionados los botones izquierdo y central.
6	Están presionados los botones derecho y central.
7	Los tres botones están presionados.
Los valores para Mayúsculas son:

Valor	Descripción
1	Se presionó MAYÚSCULAS.
2	Se presionó CTRL.
3	Se presionaron MAYÚSCULAS y CTRL.
4	Se presionó ALT.
5	Se presionaron ALT y MAYÚSCULAS.
6	Se presionaron ALT y CTRL.
7	Se presionaron ALT, MAYÚSCULAS y CTRL.
Puede identificar los modificadores de teclado individuales utilizando las siguientes constantes:

Constante	Valor	Descripción
fmShiftMask	1	Máscara para detectar MAYÚSCULAS.
fmCtrlMask	2	Máscara para detectar CTRL.
fmAltMask	4	Máscara para detectar ALT.
Comentarios

El evento MouseMove se aplica a formularios, controles en un formulario y etiquetas.

Los eventos MouseMove se generan continuamente según se mueve el puntero del mouse a través de los objetos. A menos que otro objeto haya capturado el mouse, un objeto reconoce un evento MouseMove siempre que la posición del mouse está dentro de sus límites.

Mover un formulario puede también generar un evento MouseMove incluso si el mouse es estacionario. Los eventos MouseMove se generan cuando el formulario se mueve debajo del puntero del mouse. Si una macro o un procedimiento de evento mueve un formulario como respuesta a un evento a MouseMove, el evento puede generar continuamente (en cascada) eventos MouseMove.

Si dos controles están muy próximos, y se mueve el puntero del mouse rápidamente sobre el espacio entre ambos, el evento MouseMove podría no producirse para ese espacio. En estos casos, podría necesitar responder al evento MouseMove en ambos controles.

Puede utilizar el valor devuelto por el argumento Botón para identificar el estado de los botones del mouse.

Utilice el argumento Mayúsculas para identificar el estado de MAYÚSCULAS, CTRL y ALT cuando se produce el evento MouseMove. Por ejemplo, si están presionadas CTRL y ALT a la vez, el valor de Mayúsculas es 6.

Nota  Puede utilizar los procedimientos de evento MouseDown y MouseUp para responder a eventos provocados al presionar y soltar los botones del mouse.


RemoveControl (Evento)

Se produce cuando se elimina un control desde el contenedor.

Sintaxis

Para un control MultiPage
Private Sub objeto_RemoveControl( índice As Long, control As Control)

Para todos los demás controles
Private Sub objeto_RemoveControl( control As Control)

La sintaxis del evento RemoveControl consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
índice	Requerido. El índice de la página en un control MultiPage que contenía el control eliminado.
control	Requerido. El control eliminado.
Comentarios

Este evento se produce cuando se elimina un control desde el formulario, no cuando un control se descarga debido a que el formulario se está cerrando.


Scroll (Evento)

Se produce cuando se vuelve a posicionar un cuadro de desplazamiento.

Sintaxis

Para un control ScrollBar
Private Sub objeto_Scroll( )

Para un control MultiPage
Private Sub objeto_Scroll( índice As Long, AcciónX As fmScrollAction, AcciónY As fmScrollAction, ByVal DxSolicitada As Single, ByVal DySolicitada As Single, ByVal DxReal As MSForms.ReturnSingle, ByVal DyReal As MSForms.ReturnSingle)

Para un control Frame
Private Sub objeto_Scroll( AcciónX As fmScrollAction, AcciónY As fmScrollAction, ByVal DxSolicitada As Single, ByVal DySolicitada As Single, ByVal DxReal As MSForms.ReturnSingle, ByVal DyReal As MSForms.ReturnSingle)

La sintaxis del evento Scroll consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
índice	Requerido. El índice de la página en un control MultiPage asociado con este evento.
AcciónX	Requerido. La acción que se produce en sentido horizontal.
AcciónY	Requerido. La acción que se produce en sentido vertical.
DxSolicitada	Requerido. La distancia, en puntos, que desea que se mueva la barra de desplazamiento en sentido horizontal.
DySolicitada	Requerido. La distancia, en puntos, que desea que se mueva la barra de desplazamiento en sentido vertical.
DxReal	Requerido. La distancia, en puntos, que se movió la barra de desplazamiento en sentido horizontal.
DyReal	Requerido. La distancia, en puntos, que se movió la barra de desplazamiento en sentido vertical.
Valores

Los valores para AcciónX y AcciónY son:

Constante	Valor	Descripción
fmScrollActionNoChange	0	No se produjeron cambios.
fmScrollActionLineUp	1	Una distancia pequeña hacia arriba en la barra de desplazamiento vertical; una distancia pequeña hacia la izquierda en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar la tecla de flecha arriba o flecha a la izquierda en el teclado para mover la barra de desplazamiento.
fmScrollActionLineDown	2	Una distancia pequeña hacia abajo en la barra de desplazamiento vertical; una distancia pequeña hacia la derecha en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar la tecla de flecha abajo o flecha a la derecha en el teclado para mover la barra de desplazamiento.
fmScrollActionPageUp	3	Una página arriba en la barra de desplazamiento vertical; una página a la izquierda en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar RE PÁG en el teclado para mover la barra de desplazamiento.
fmScrollActionPageDown	4	Una página abajo en la barra de desplazamiento vertical; una página a la derecha en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar AV PÁG en el teclado para mover la barra de desplazamiento.
fmScrollActionBegin	5	La parte superior de una barra de desplazamiento vertical; el límite izquierdo de una barra de desplazamiento horizontal.
fmScrollActionEnd	6	La parte inferior de una barra de desplazamiento vertical; el límite derecho de una barra de desplazamiento horizontal.
fmScrollActionPropertyChange	7	El valor del las propiedades ScrollTop o ScrollLeft cambiadas. La dirección y la distancia dependen de la propiedad que se cambió y del nuevo valor de la propiedad.
fmScrollActionControlRequest	8	Un control pidió a su contenedor que se desplazara. La distancia depende del control específico y del contenedor en el que participa.
fmScrollActionFocusRequest	9	El usuario se movió a un control diferente. La distancia depende de la posición del control seleccionado, y generalmente tiene el mismo efecto que mover el control seleccionado para que sea visible.
Comentarios

El evento Scroll asociado con un formulario Frame o Page, devuelve los siguientes argumentos: AcciónX, AcciónY, XReal, e YReal. AcciónX y AcciónY identifican la acción que se produjo. XReal e YReal identifican la distancia que se movió el cuadro de desplazamiento.

La acción predeterminada es calcular la nueva posición del cuadro de desplazamiento y desplazarlo a esa posición.

Puede iniciar un evento Scroll al ejecutar un método Scroll en un formulario, un control Frame o Page. Los usuarios pueden generar eventos Scroll moviendo el cuadro de desplazamiento.

El evento Scroll asociado con un control ScrollBar autónomo indica que el usuario movió el cuadro de desplazamiento en una dirección. Este evento no se inicia cuando cambia el valor del control ScrollBar por código o porque el usuario hace clic en partes del control ScrollBar distintas del cuadro de desplazamiento.


SpinDown, SpinUp (Eventos)

SpinDown se produce cuando el usuario hace clic en la flecha inferior o izquierda del botón de número. SpinUp se produce cuando el usuario hace clic en la flecha superior o derecha del botón de número.

Sintaxis

Private Sub objeto_SpinDown( )

Private Sub objeto_SpinUp( )

La sintaxis de los eventos SpinDown y SpinUp consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El evento SpinDown disminuye la propiedad Value. El evento SpinUp incrementa la propiedad Value.


Zoom (Evento)

Se produce cuando cambia el valor de la propiedad Zoom.

Sintaxis

Para un control Frame
Private Sub objeto_Zoom( Porcentaje As Integer)

Para un control MultiPage
Private Sub objeto_Zoom( índice As Long, Porcentaje As Integer)

La sintaxis del evento Zoom consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
índice	Requerido. El índice de la página en un control MultiPage asociado con este evento.
Porcentaje	Requerido. El porcentaje con que se va a hacer zoom en el formulario. El intervalo de valores válidos es desde 10 por ciento al 400 por ciento.
Comentarios

El valor de la propiedad Zoom identifica cómo cambia el tamaño del formulario o del control Page. El valor de la propiedad indica cómo debería cambiarse el tamaño del control con respecto a su tamaño actual. Los valores inferiores a 100 reducen el tamaño mostrado del formulario; los valores superiores a 100 aumentan el tamaño mostrado del formulario.

Puede establecer esta propiedad en cualquier número entero de 10 a 400.


Add (Método)

Agrega o inserta un objeto Tab o Page en un control TabStrip o MultiPage, o agrega un control mediante su identificador de programa (IdProg) a una página o formulario.

Sintaxis

Para un control MultiPage, TabStrip
Set Objeto = objeto.Add( [ Nombre [,  Título [,  índice]]])

Para otros controles
Set Control = objeto.Add(  IdProg [,  Nombre [,  Visible]])

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

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Nombre	Opcional. Especifica el nombre del objeto que se va a agregar. Si no se especifica un nombre, el sistema crea un nombre predeterminado basado en las reglas de la aplicación donde se utiliza el formulario.
Título	Opcional. Especifica el título que aparece en una ficha o en un control. Si no se especifica ningún título, el sistema crea un título predeterminado basado en las reglas de la aplicación donde se utiliza el formulario.
Índice	Opcional. Identifica la posición de una página o una ficha de una colección Pages o Tabs. Si no se especifica ningún índice, el sistema anexa la página o la ficha al final de la colección Pages o Tabs y le asigna el valor de índice apropiado.
IdProg	Requerido. Identificador de programa. Una cadena de texto sin espacios que identifica una clase de objeto. La sintaxis estándar de un IdProg es <Fabricante>.<Componente>.<Versión>. Un IdProg se asigna a un identificador de clase (CLSID).
Visible	Opcional. True si el objeto es visible (predeterminado). False si el objeto está oculto.
Valores

Los valores de IdProg para controles individuales son:

CheckBox	Forms.CheckBox.1
ComboBox	Forms.ComboBox.1
CommandButton	Forms.CommandButton.1
Frame	Forms.Frame.1
Image	Forms.Image.1
Label	Forms.Label.1
ListBox	Forms.ListBox.1
MultiPage	Forms.MultiPage.1
OptionButton	Forms.OptionButton.1
ScrollBar	Forms.ScrollBar.1
SpinButton	Forms.SpinButton.1
TabStrip	Forms.TabStrip.1
TextBox	Forms.TextBox.1
ToggleButton	Forms.ToggleButton.1
Comentarios

Para un control MultiPage, el método Add devuelve un objeto Page. Para un control TabStrip, devuelve un objeto Tab. El valor de índice para el primer objeto Page o Tab de una colección es 0, el valor para el segundo objeto Page o Tab es 1, y así sucesivamente.

Para la colección Controls de un objeto, el método Add devuelve un control correspondiente al IdProg especificado. El evento AddControl se produce después de que se agrega el control.

La siguiente sintaxis devolverá la propiedad Text de un control agregado en tiempo de diseño:

formusuario.elcuadro.text

Si agrega un control en tiempo de ejecución, debe utilizar la sintaxis de admiración para hacer referencia a propiedades de ese control. Por ejemplo, para devolver la propiedad Text de un control agregado en tiempo de ejecución, utilice la siguiente sintaxis:

formusuario!elcuadro.text

Nota  Puede cambiar la propiedad Name de un control en tiempo de ejecución solamente si agregó ese control en tiempo de ejecución con el método Add.


AddItem (Método)

Para un cuadro de lista de columna sencilla o un cuadro combinado, agregue un elemento a la lista. Para un cuadro de lista de múltiples columnas o un cuadro combinado, agregue una fila a la lista.

Sintaxis

Variant = objeto.AddItem( [ elemento [,  índiceVar]])

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
elemento	Opcional. Especifica el elemento o la fila que se va a agregar. El número del primer elemento o fila es 0; el número del segundo elemento o fila es 1, y así sucesivamente.
índiceVar	Opcional. Número entero que especifica la posición dentro del objeto donde se coloca el nuevo elemento o la fila nueva.
Comentarios

Si proporciona un valor válido a índiceVar, el método AddItem coloca el elemento o la fila en esa posición dentro de la lista. Si omite índiceVar, el método agrega el elemento o la fila al final de la lista.

El valor de índiceVar no debe ser mayor que el valor de la propiedad ListCount.

Para un control ListBox de múltiples columnas o ComboBox, el evento AddItem inserta una fila completa, esto quiere decir que inserta un elemento para cada columna del control. Para asignar valores a un elemento distinto de la primera columna, utilice la propiedad List o Column y especifique la fila y la columna del elemento.

Si el control depende de datos, falla el método AddItem.

Nota  Puede agregar más de una fila al mismo tiempo en un control ComboBox o ListBox utilizando List.


Clear (Método)

Elimina todos los objetos de un objeto o colección.

Sintaxis

objeto.Clear

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Para los controles MultiPage o TabStrip, el método Clear elimina páginas o fichas individuales.

Para los controles ListBox o ComboBox, Clear elimina todas las entradas de la lista.

Para una colección Controls, Clear elimina los controles que se crearon en tiempo de ejecución con el método Add. El uso del método Clear en controles creados en tiempo de diseño provoca un error.

Si el control depende de datos, falla el método Clear.


Copy (Método)

Copia el contenido de un objeto al Portapapeles.

Sintaxis

objeto.Copy

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El contenido original permanece en el objeto.

El contenido real que se copia depende del objeto. Por ejemplo, en un control Page, el método Copy copia el control o controles seleccionados actualmente. En un control TextBox o ComboBox, copia el texto seleccionado actualmente.

El uso del método Copy en un formulario, control Frame o Page copia el control activo actualmente.


Cut (Método)

Quita información seleccionada de un objeto y la transfiere al Portapapeles.

Sintaxis

objeto.Cut

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Para un control ComboBox o TextBox, el método Cut quita el texto seleccionado actualmente en el control y lo transfiere al Portapapeles. Este método no requiere que el control tenga el enfoque.

En un control Page o Frame, o en su formulario, Cut quita los controles seleccionados actualmente y los transfiere al Portapapeles. Este método solamente quita los controles creados en tiempo de ejecución.


DropDown (Método)

Muestra la parte de la lista de un control ComboBox.

Sintaxis

objeto.DropDown

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Utilice el método DropDown para abrir la lista en un cuadro combinado.


GetFormat (Método)

Devuelve un valor entero que indica si un formato específico está en el objeto DataObject.

Sintaxis

Boolean = objeto.GetFormat( formato)

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
formato	Requerido. Un entero o una cadena que especifica un formato específico que puede existir en el objeto DataObject. Si el formato específico existe en el objeto DataObject, el método GetFormat devuelve True.
Valores

Los valores para formato son:

Valor	Descripción
1	Formato de texto.
Una cadena o cualquier entero distinto de 1	Un formato de objeto DataObject definido por el usuario que se transfiere al objeto DataObject desde SetText.
Comentarios

El método GetFormat busca un formato en la lista actual de formatos del objeto DataObject. Si se encuentra el formato en el objeto DataObject, GetFormat devuelve True; si no, GetFormat devuelve False.

El objeto DataObject es compatible actualmente sólo con formatos de texto.


GetFromClipboard (Método)

Copia datos desde el Portapapeles a un objeto DataObject.

Sintaxis

String = objeto.GetFromClipboard( )

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

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Comentarios

El objeto DataObject puede contener muchos elementos de datos, pero cada elemento debe estar en un formato diferente. Por ejemplo, el objeto DataObject puede incluir un elemento de texto y un elemento en un formato personalizado; pero no puede incluir dos elementos de texto.


GetText (Método)

Recupera una cadena de texto del objeto DataObject utilizando el formato especificado.

Sintaxis

String = objeto.GetText( [ formato])

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

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
formato	Opcional. Una cadena o un entero que especifica el formato de los datos que se vana a recuperar del objeto DataObject.
Valores

Los valores para formato son:

Valor	Descripción
1	Formato de texto.
Una cadena o un entero distinto de 1	Un formato de objeto DataObject definido por el usuario que se transfiere al objeto DataObject desde SetText.
Comentarios

El objeto DataObject puede contener muchos elementos de datos, pero cada elemento debe estar en un formato diferente. Por ejemplo, el objeto DataObject puede incluir un elemento de texto y un elemento en un formato personalizado; pero no puede incluir dos elementos de texto.

Si no se especifica un formato, el método GetText solicita la información del objeto DataObject en formato Text.


Item (Método)

Devuelve un miembro de la colección, ya sea por posición o por nombre.

Sintaxis

Set Objeto = objeto.Item(  índicecolección)

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
índicecolección	Requerido. Una posición o índice del miembro en una colección.
Valores

índicecolección puede ser una cadena o un entero. Si es una cadena, debe tener un nombre de miembro válido. Si es un entero, el valor mínimo es 0 y el valor máximo es uno menos que el número de elementos de la colección.

Comentarios

Si se especifica un índice o nombre no válido, se produce un error.


Move (Método)

Mueve un formulario o un control o mueve todos los controles de la colección Controls.

Sintaxis

Para un formulario o un control
objeto.Move( [Izquierda [,  Superior[,  Ancho[,  Altura[,  Esquema]]]]])

Para la colección Controls
objeto.Move( X, Y)

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

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Izquierda	Opcional. Valor de precisión simple value, en puntos, que indica la coordenada horizontal del borde izquierdo del objeto.
Superior	Opcional. Valor de precisión simple, en puntos, que especifica la coordenada vertical del borde superior del objeto.
Ancho	Opcional. Valor de precisión simple, en puntos, que indica el ancho del objeto.
Altura	Opcional. Valor de precisión simple, en puntos, que indica el alto del objeto.
Esquema	Opcional. Un valor booleano que indica si el evento Layout está iniciado para el principal del control que sigue este movimiento. El valor predeterminado es False.
X, Y	Requerido. Valor de precisión sencilla, en puntos, que especifica los cambios de la posición horizontal y vertical actual para cada control en la colección Controls.
Valores

Los valores máximo y mínimo para esta propiedad varían de una aplicación a otra.

Comentarios

Par un formulario o un control, puede mover una selección a una ubicación específica relativa a los bordes del formulario que contiene la selección.

Puede utilizar argumentos con nombre o puede introducir los argumentos por posición. Si utiliza argumentos con nombre, puede enumerar los argumentos en cualquier orden. Si no, debe escribirlos en el orden mostrado, utilizando comas para indicar la posición relativa de los argumentos que no ha especificado. Cualquier argumento no especificado permanece sin cambios.

Para la colección Controls, puede mover todos los controles de esta colección una distancia específica de sus posiciones actuales en un formulario, Frame o Page.


Paste (Método)

Transfiere el contenido del Portapapeles a un objeto.

Sintaxis

objeto.Paste

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Los datos pegados en un control ComboBox o TextBox se tratan como texto.

Cuando se utiliza el método Paste con un formulario, puede pegar cualquier objeto en el formulario.


PutInClipboard (Método)

Mueve datos desde un objeto DataObject al Portapapeles.

Sintaxis

objeto.PutInClipboard

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El método PutInClipboard reemplaza el contenido del Portapapeles con el contenido del objeto DataObject que está en formato Text.


RedoAction (Método)

Invierte el efecto de la acción Undo más reciente.

Sintaxis

Boolean = objeto.RedoAction

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El método Redo invierte la última acción Undo, que no es necesariamente la última acción realizada. No se pueden deshacer todas las acciones.

Por ejemplo, después de pegar texto en un control TextBox y de elegir el comando Deshacer para quitar dicho texto, puede elegir el comando Rehacer para volver a colocar el texto.

Nota  Si la propiedad CanRedo es False, el comando Rehacer no está disponible en la interfaz de usuario y el método RedoAction no es válido en código.

RedoAction devuelve True si se ejecutó satisfactoriamente.


Remove (Método)

Quita un miembro de una colección o bien quita un control de un control Frame, Page o formulario.

Sintaxis

objeto.Remove(..índicecolección )

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
índicecolección	Requerido. Un posición o índice del miembro dentro de una colección. Se admiten tanto valores numéricos como de cadena. Si el valor es un número, el valor mínimo es cero, y el valor máximo es uno menos que el número de miembros de la colección. Si el valor es una cadena, debe corresponder a un nombre de miembro válido.
Comentarios

Este método quita cualquier control que se agregó en tiempo de ejecución. Sin embargo, si intenta quita un control que se agregó en tiempo de diseño obtendrá un error.


RemoveItem (Método)

Quita una fila de la lista en un cuadro de lista o un cuadro combinado.

Sintaxis

Boolean = objeto.RemoveItem(  índice)

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
índice	Requerido. Especifica la fila que se va a quitar. El número de la primera fila es 0, el número de la segunda fila es 1, y así sucesivamente.
Este método no quitará una fila de la lista si el control ListBox es dependiente (es decir, cuando la propiedad RowSource especifica un origen de datos para el control ListBox).


Repaint (Método)

Actualiza la pantalla volviendo a dibujar el formulario o la página.

Sintaxis

Boolean = objeto.Repaint

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El método Repaint es útil si el contenido o la apariencia de un objeto cambia de forma significativa y no quiere esperar hasta que el sistema vuelva a dibujar el área automáticamente.


Scroll (Método)

Mueve la barra de desplazamiento de un objeto.

Sintaxis

objeto.Scroll( [ AcciónX [,  AcciónY]])

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

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
AcciónX	Opcional. Identifica la acción que se produce en dirección horizontal.
AcciónY	Opcional. Identifica la acción que se produce en dirección vertical.
Valores

Los valores para AcciónX y AcciónY son:

Constante	Valor	Descripción
fmScrollActionNoChange	0	No se desplaza en la dirección especificada.
fmScrollActionLineUp	1	Se mueve hacia arriba en la barra de desplazamiento vertical o a la izquierda en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar la tecla de flecha arriba o flecha a la izquierda en el teclado para mover la barra de desplazamiento.
fmScrollActionLineDown	2	Se mueve hacia abajo en la barra de desplazamiento vertical o a la derecha en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar la tecla de flecha abajo o flecha a la derecha en el teclado para mover la barra de desplazamiento.
fmScrollActionPageUp	3	Mueve una página arriba en la barra de desplazamiento vertical y una página a la izquierda en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar RE PÁG en el teclado para mover la barra de desplazamiento.
fmScrollActionPageDown	4	Mueve una página abajo en la barra de desplazamiento vertical y una página a la derecha en la barra de desplazamiento horizontal. El movimiento es equivalente a presionar AV PÁG en el teclado para mover la barra de desplazamiento.
fmScrollActionBegin	5	Va a la parte superior de una barra de desplazamiento vertical o al límite izquierdo de una barra de desplazamiento horizontal.
fmScrollActionEnd	6	Va a la parte inferior de una barra de desplazamiento vertical o al límite derecho de una barra de desplazamiento horizontal.
Comentarios

El método Scroll se aplica a barras de desplazamiento que aparecen en un formulario, Frame o Page que son más largas que su área de presentación. Este método no se aplica a un control ScrollBar autónomo o a barras de desplazamiento que aparecen en un control TextBox.


SetDefaultTabOrder (Método)

Establece la propiedad TabIndex para cada control de un formulario, utilizando un orden predeterminado de arriba abajo y de izquierda a derecha.

Sintaxis

objeto.SetDefaultTabOrder

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Microsoft Forms establece el orden de tabulación comenzando con los controles de la esquina superior izquierda del formulario y moviéndolos a la derecha. Coloque los controles más cerca del borde izquierdo del formulario antes en el orden de tabulación. Si hay más de un control a la misma distancia del borde izquierdo del formulario, los valores del orden de tabulación se asignan desde la parte superior a la inferior.


SetFocus (Método)

Mueve el enfoque a esta instancia de un objeto.

Sintaxis

objeto.SetFocus

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Si falla el establecimiento del enfoque, éste vuelve al objeto anterior y se genera un error.

De manera predeterminada, establecer el enfoque en un control no activa la ventana del control ni lo coloca por encima de otros controles.

El método SetFocus es válido para un control Frame vacío y también para un Frame que contiene otros controles. Un control Frame vacío obtiene el enfoque pos sí mismo y cualquier evento de teclado posterior se aplica al Frame. En un control Frame que contiene otros controles, el enfoque se mueve al primer control del Frame y los eventos de teclado subsiguientes se aplican al control que tiene el enfoque.


SetText (Método)

Copia una cadena de texto al objeto DataObject utilizando un formato especificado.

Sintaxis

objeto.SetText(  AlmacenarDatos [,  formato])

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
AlmacenarDatos	Requerido. Define los datos que se van a almacenar en el objeto DataObject.
formato	Opcional. Un entero o una cadena que especifica el formato de AlmacenarDatos. Cuando se recuperan datos del objeto DataObject, el formato identifica el fragmento de datos que se va a recuperar.
Valores

Los valores para formato son:

Valor	Descripción
1	Formato de texto.
Una cadena o un entero distinto de 1	Un formato de objeto DataObject definido por el usuario.
Comentarios

El objeto DataObject almacena los datos de acuerdo con su formato. Cuando el usuario proporciona una cadena, el objeto DataObject guarda el texto con el formato especificado.

Si el objeto DataObject contiene datos en el mismo formato que los datos nuevos, los datos nuevos reemplazan a los datos existentes en el objeto DataObject. Si los datos nuevos están en un formato nuevo, los datos nuevos y el formato nuevo se agregan al objeto DataObject y los datos existentes anteriormente no varían.

Si no se especifica ningún formato, el método SetText asigna el formato de texto a la cadena. Si se especifica un formato nuevo, el objeto DataObject registra el nuevo formato con el sistema.


StartDrag (Método)

Inicia una operación de arrastrar y colocar para un objeto DataObject.

Sintaxis

fmDropEffect=Objeto.StartDrag([Efecto as fmDropEffect])

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

Parte	Descripción
Objeto	Requerido. Un objeto válido.
Efecto	Opcional. El efecto de la operación de arrastrar y colocar en el control de destino.
Valores

Los valores para Efecto son:

Constante	Valor	Descripción
fmDropEffectNone	0	No copia ni mueve el origen de colocación al destino de colocación.
fmDropEffectCopy	1	Copia el origen de colocación al destino de colocación.
fmDropEffectMove	2	Mueve el origen de colocación al destino de colocación.
fmDropEftectCopyOrMove	3	Copia o mueve el origen de colocación al destino de colocación.
Comentarios

La acción de arrastrar se inicia en la posición actual del puntero del mouse con el estado del teclado actual y finaliza cuando el usuario suelta el mouse. El efecto de la operación de arrastrar y colocar depende del efecto seleccionado para el destino de colocación.

Por ejemplo, un evento MouseMove del control podría incluir el método StartDrag. Cuando el usuario hace clic en el control y mueve el mouse, el puntero del mouse cambia para indicar si Efecto es válido para el destino de colocación.


UndoAction (Método)

Invierte la acción más reciente que proporciona el comando Deshacer.

Sintaxis

Boolean = objeto.UndoAction

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

El comando Deshacer en la interfaz de usuario utiliza el método UndoAction. Por ejemplo, si pega texto en un control TextBox, puede utilizar el método UndoAction para quitar ese texto y restaurar el contenido anterior del control TextBox.

No se pueden deshacer todas las acciones del usuario. Si una acción no se puede deshacer, el comando Deshacer no estará disponible después de la acción.

Nota  Si la propiedad CanUndo es False, el comando Deshacer no está disponible en la interfaz de usuario y el método UndoAction no es válido en código.

Si el método UndoAction se aplica a un formulario, todos los cambios realizados en el registro actual se pierden. Si el método UndoAction se aplica a un control, solamente afecta al control.

Debe aplicar este método antes de que se actualice el formulario o el control. Puede que desee incluir este método en el evento de un formulario BeforeUpdate o en el evento Change de un control.

UndoAction es una alternativa a utilizar la instrucción SendKeys para enviar el valor de ESC en un procedimiento de evento.


ZOrder (Método)

Coloca el objeto al principio o al final del orden-z.

Sintaxis

objeto.ZOrder( [ Posiciónz])

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Posiciónz	Opcional. Una posición de un control, al principio o al final, en el orden z del contenedor.
Valores

Los valores para Posiciónz son:

Constante	Valor	Descripción
fmTop	0	Coloca el control al principio del orden z. El control se muestra por encima de otros controles (predeterminado).
fmBottom	1	Coloca el control al final del orden z. El control se muestra por debajo de otros controles.
Comentarios

El orden z determina cómo se apilan las ventanas y los controles cuando se muestran al usuario. Los elementos de la parte posterior del orden z se solapan con los elementos más cercanos; los elementos de la parte delantera del orden z parecen estar por encima de los elementos de atrás. Cuando se omite el argumento Posiciónz, el objeto se trae al frente.

En el modo de diseño, los comandos Traer al frente o Enviar al fondo establecen el orden z. Traer al frente es equivalente a utilizar el método ZOrder y colocar el objeto delante del orden z. Enviar al fondo es equivalente a utilizar el método ZOrder y colocar el objeto detrás del orden z.

Este método no afecta al contenido ni a la secuencia de los controles en la colección Controls.

Nota   No puede Deshacer o Rehacer comandos que disponen capas, como los comandos Enviar al fondo o Traer al frente. Por ejemplo, si selecciona un objeto y hace clic en Mover atrás en el menú contextual, no podrá Deshacer o Rehacer esta acción.


Accelerator (Propiedad)

Establece o recupera la tecla de aceleración para un control.

Sintaxis

objeto.Accelerator [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. El carácter que se va a utilizar como tecla de aceleración.
Comentarios

Para designar una tecla de aceleración, escriba un único carácter para la propiedad Accelerator. Puede establecer Accelerator en la hoja de propiedades del control o en código. Si el valor de esta propiedad contiene más de un carácter, el primer carácter de la cadena se convierte en el valor de la propiedad Accelerator.

Cuando se utiliza una tecla de aceleración, no hay información visual (aparte del enfoque) para indicar que el control inició el evento Click. Por ejemplo, si la tecla de aceleración se aplica a un control CommandButton, el usuario no verá el botón presionado en la interfaz. El botón recibe el enfoque cuando el usuario presiona la tecla de aceleración.

Si la tecla de aceleración se aplica a un control Label recibe el enfoque el control siguiente al control Label en el orden de tabulación, en vez del propio control Label.


ActiveControl (Propiedad)

Identifica y permite la manipulación del control que tiene el enfoque.

Sintaxis

objeto.ActiveControl

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad ActiveControl es de sólo lectura y se establece cuando selecciona un control en la interfaz. Puede utilizar la propiedad ActiveControl para sustituir al nombre del control cuando se establecen propiedades o se llama a métodos.


Alignment (Propiedad)

Especifica la posición de un control con respecto a su título.

Sintaxis

objeto.Alignment [= fmAlignment]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmAlignment	Opcional. Posición del título.
Valores

Los valores para fmAlignment son:

Constante	Valor	Descripción
fmAlignmentLeft	0	Coloca el título a la izquierda del control.
FmAlignmentRight	1	Coloca el título a la derecha del control (predeterminado).
Comentarios

El texto del título para un control está alineado a la izquierda.

Nota  Aunque la propiedad Alignment existe en el control ToggleButton, la propiedad está deshabilitada. No puede establecer o devolver un valor para esta propiedad en el control ToggleButton.


AutoSize (Propiedad)

Especifica si un objeto cambia de tamaño automáticamente para mostrar todo su contenido.

Sintaxis

objeto.AutoSize [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el control cambia de tamaño.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Cambia automáticamente el tamaño del control para mostrar todo su contenido.
False	Mantiene constante el tamaño del control. El contenido se recorta cuando excede del área del control (predeterminado).
Comentarios

Para controles con títulos, la propiedad AutoSize especifica si el control se ajusta automáticamente para mostrar todo el título.

Para controles sin títulos, esta propiedad especifica si el control se ajusta automáticamente para mostrar la información almacenada en el mismo. En un control ComboBox, por ejemplo, establecer la propiedad AutoSize a True establece automáticamente el ancho del área de representación para hacerla coincidir con el texto actual.

Para un cuadro de texto de una sola línea, establecer la propiedad AutoSize a True automáticamente establece el ancho del área de representación a la longitud del texto del cuadro de texto.

Para un cuadro de texto de múltiples líneas que no contiene texto, establecer la propiedad AutoSize a True automáticamente muestra el texto como una columna. El ancho de la columna de texto se acomoda al ancho del tamaño de la fuente del texto. El alto de la columna de texto se establece para mostrar el texto completo de TextBox.

Para un cuadro de texto de múltiples líneas que contiene texto, establecer la propiedad AutoSize a True automáticamente aumenta el control TextBox verticalmente para mostrar el texto completo. El ancho del control TextBox no cambia.

Nota   Si cambia manualmente el tamaño de un control mientras la propiedad AutoSize es True, el cambio manual sobrescribe el tamaño anteriormente establecido por AutoSize.


AutoTab (Propiedad)

Especifica si se produce una tabulación automática cuando el usuario escribe el máximo número disponible de caracteres en el control TextBox o el fragmento del cuadro de texto de un control ComboBox.

Sintaxis

objeto.AutoTab [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Especifica si se produce una tabulación automática.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Se produce una tabulación.
False	No se produce una tabulación (predeterminado).
Comentarios

La propiedad MaxLength especifica el número máximo de caracteres permitido en un control TextBox o el fragmento del cuadro de texto de un control ComboBox.

Puede especificar la propiedad AutoTab para un control TextBox o ComboBox en un formulario para el que normalmente introduce un número fijo de caracteres. Una vez que el usuario introduce el número máximo de caracteres, el enfoque se mueve automáticamente al siguiente control del orden de tabulación. Por ejemplo, si un control TextBox muestra números de inventario que siempre son de cinco números de longitud, puede utilizar la propiedad MaxLength para especificar el número máximo de caracteres que hay que introducir en el control TextBox y la propiedad AutoTab para pasar automáticamente al siguiente control después de que el usuario introduzca cinco caracteres.

Se admite que la propiedad AutoTab varíe de una aplicación a otra. No todos los contenedores admiten esta propiedad.


AutoWordSelect (Propiedad)

Especifica si una palabra o un carácter es la unidad básica utilizada para extender la selección.

Sintaxis

objeto.AutoWordSelect [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Especifica la unidad básica utilizada para extender la selección.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Utiliza una palabra como unidad básica (predeterminado).
False	Utiliza un carácter como unidad básica.
Comentarios

La propiedad AutoWordSelect especifica cómo se extiende o contrae la selección en el área de edición de un control TextBox o ComboBox.

Si el usuario coloca el punto de inserción en medio de una palabra y extiende la selección cuando la propiedad AutoWordSelect es True, la selección incluye la palabra completa.


BackColor (Propiedad)

Especifica el color de segundo plano del objeto.

Sintaxis

objeto.BackColor [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un valor o constante que determina el color de fondo de un objeto.
Valores

Puede utilizar cualquier número entero que represente un color válido. También puede especificar un color utilizando la función RGB con los componentes de color rojo, verde y azul. El valor de cada componente de color es un número entero entre 0 y 255. Por ejemplo, puede especificar el verde azulado como el valor entero 4966415 o como componentes de color rojo, verde y azul con valores 15, 200, 75.

Comentarios

Sólo puede ver el color de fondo de un objeto si la propiedad BackStyle se establece a fmBackStyleOpaque.


BackStyle (Propiedad)

Devuelve o establece el estilo de fondo para un objeto.

Sintaxis

objeto.BackStyle [= fmBackStyle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmBackStyle	Opcional. Especifica el fondo del control.
Valores

Los valores para fmBackStyle son:

Constante	Valor	Descripción
fmBackStyleTransparent	0	El fondo es transparente.
fmBackStyleOpaque	1	El fondo es opaco (predeterminado).
Comentarios

La propiedad BackStyle determina si un control es transparente. Si la propiedad BackStyle es fmBackStyleOpaque, el control no es transparente y no puede ver nada que haya detrás del control en un formulario. Si la propiedad BackStyle es fmBackStyleTransparent, puede ver a través del control y observar cualquier elemento que haya detrás del mismo en el formulario.

Nota  La propiedad BackStyle no afecta a la transparencia de los mapas de bits. Debe utilizar un editor de imágenes como Paintbrush para hacer transparente un mapa de bits. No todos los controles son compatibles con mapas de bits transparentes.


Bold, Italic, Size, StrikeThrough, Underline, Weight (Propiedades)

Especifica los atributos visuales del texto en un formulario en pantalla o impreso.

Sintaxis

objeto.Bold [= Boolean]

objeto.Italic [= Boolean]

objeto.Size [= Currency]

objeto.StrikeThrough [= Boolean]

objeto.Underline [= Boolean]

objeto.Weight [= Integer]

La sintaxis de las propiedades Bold, Italic, Size, StrikeThrough, Underline y Weight consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un nombre de objeto válido.
Boolean	Opcional. Especifica el estilo de la fuente.
Currency	Opcional. Un número que indica el tamaño de la fuente.
Integer	Opcional. Especifica el estilo de la fuente.
Los valores para Boolean son:

Valor	Descripción
True	El texto tiene el atributo especificado (es decir, negrita, cursiva, tamaño, marcas de tachado o subrayado, o grosor).
False	El texto no tiene el atributo especificado (predeterminado).
La propiedad Weight admite valores desde 0 hasta 1000. Un valor cero permite al sistema elegir el grosor más apropiado. Un valor de 1 a 1000 indica un grosor específico, donde 1 representa el tipo más claro y 1000 representa el tipo más oscuro.

Comentarios

Estas propiedades definen las características visuales del texto. La propiedad Bold determina si el texto está en formato normal o negrita. La propiedad Italic determina si el texto está en formato normal o cursiva. La propiedad Size determina el alto, en puntos, del texto mostrado. La propiedad Underline determina si el texto está subrayado. La propiedad StrikeThrough determina si el texto aparece con marcas de tachado. La propiedad Weight determina la oscuridad del texto.

La apariencia de la fuente en la pantalla y en la impresora puede ser diferente, dependiendo del equipo y de la impresora. Si selecciona una fuente que su sistema no puede mostrar con el atributo especificado o que no se instaló, Windows la sustituye por una fuente parecida. La fuente sustitutoria será los más parecida posible a la fuente originalmente solicitada.

Cambiar el valor de la propiedad Bold también cambia el valor de la propiedad Weight. Establecer la propiedad Bold a True establece la propiedad Weight a 700; establecer Bold a False establece la propiedad Weight a 400. A la inversa, establecer la propiedad Weight a cualquier valor superior a 550 establece la propiedad Bold a True; establecer la propiedad Weight a 550 o menos establece la propiedad Bold a False.

El tamaño en puntos predeterminado lo determina el sistema operativo.


BorderColor (Propiedad)

Especifica el color del borde de un objeto.

Sintaxis

objeto.BorderColor [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un valor o constante que determina el color del borde de un objeto.
Valores

Puede utilizar cualquier número entero que represente un color válido. También puede especificar un color utilizando la función RGB con los componentes de color rojo, verde y azul. El valor de cada componente de color es un número entero entre 0 y 255. Por ejemplo, puede especificar el verde azulado como el valor entero 4966415 o como componentes de color rojo, verde y azul con valores 15, 200, 75.

Comentarios

Para utilizar la propiedad BorderColor, la propiedad BorderStyle se debe establecer a un valor distinto de fmBorderStyleNone.

La propiedad BorderStyle utiliza BorderColor para definir los colores de los bordes. La propiedad SpecialEffect utiliza los colores del sistema exclusivamente para definir sus colores de bordes. Para los sistemas operativos Windows, la configuración de color del sistema forma parte del Panel de control y se encuentra en la ficha Appearance de la carpeta Pantalla. En Windows NT 3.51, la configuración de color del sistema se almacena el la carpeta Color del Panel de control.


BorderStyle (Propiedad)

Especifica el tipo de borde utilizado por un control o un formulario.

Sintaxis

objeto.BorderStyle [= fmBorderStyle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmBorderStyle	Opcional. Especifica el estilo del borde.
Valores

Los valores para fmBorderStyle son:

Constante	Valor	Descripción
fmBorderStyleNone	0	El control no tiene una línea de borde visible.
fmBorderStyleSingle	1	El control tiene un borde de una sola línea (predeterminado).
El valor predeterminado para un control ComboBox, Frame, Label, ListBox o TextBox es 0 (Ninguno). El valor predeterminado para un control Image es 1 (Single).

Comentarios

Para un control Frame, la propiedad BorderStyle se pasa por alto si la propiedad SpecialEffect es Ninguno.

Puede utilizar tanto el control BorderStyle como el control SpecialEffect para especificar el borde para un control, pero no ambos. Si especifica un valor distinto de cero para una de estas propiedades, el sistema establece el valor de la propiedad a cero. Por ejemplo, si establece BorderStyle a fmBorderStyleSingle, el sistema establece SpecialEffect a cero (Liso). Si especifica un valor distinto de cero para la propiedad SpecialEffect, el sistema establece la propiedad BorderStyle a cero.

BorderStyle utiliza BorderColor para definir los colores de sus bordes.


BoundColumn (Propiedad)

Identifica el origen de los datos en un control ComboBox o un control ListBox de múltiples columnas.

Sintaxis

objeto.BoundColumn [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. Indica cómo se selecciona el valor de la propiedad BoundColumn.
Valores

Los valores para Variant son:

Valor	Descripción
0	Asigna el valor de la propiedad ListIndex al control.
1 o mayor	Asigna el valor de la columna especificada al control. Las columnas están numeradas a partir de 1 cuando se utiliza esta propiedad (predeterminado).
Comentarios

Cuando el usuario elige una fila en un control ListBox o un control ComboBox de múltiple columnas, la propiedad BoundColumn identifica qué elemento de esa fila se va a almacenar como valor del control. Por ejemplo, si cada fila contiene 8 elementos y la propiedad BoundColumn es 3, el sistema almacena la información de la tercera columna de la fila seleccionada actualmente como el valor del objeto.

Puede mostrar un conjunto de datos a los usuarios, pero almacenar otros diferentes valores asociados para el objeto utilizando las propiedades BoundColumn y TextColumn. TextColumn identifica la columna de datos mostrados en un control ComboBox o ListBox; la propiedad BoundColumn identifica la columna de los valores de datos asociados almacenados para el control. Por ejemplo, podría configurar un control ListBox de múltiples columnas que contenga los nombres de días festivos en una columna y las fechas en la segunda. Para presentar los nombres de los días festivos a los usuarios, especifique la primera columna como la propiedad TextColumn. Para almacenar las fechas de los días festivos, especifique la segunda columna como la propiedad BoundColumn.

Si el control es dependiente de un origen de datos, el valor de la columna especificada por la propiedad BoundColumn se almacena en el origen de datos especificado en la propiedad ControlSource.

El valor de ListIndex recupera el número de la fila seleccionada. Por ejemplo, si desea saber la fila del elemento seleccionado, establezca BoundColumn a 0 para asignar el número de la fila seleccionada como el valor del control. Asegúrese de recuperar un valor actual, en vez de confiar en un valor anteriormente guardado, si hace referencia a una lista cuyo contenido puede cambiar.

Las propiedades Column, List y ListIndex utilizan como base de numeración el valor cero. El valor del primer elemento (columna o fila) es cero, el valor del segundo elemento es uno , y así sucesivamente. Esto quiere decir que si la propiedad BoundColumn se establece a 3, podría tener acceso al valor almacenado en esa columna utilizando la expresión Column(2).


BoundValue (Propiedad)

Contiene el valor de un control cuando ese control recibe el enfoque.

Syntax

objeto.BoundValue [= Variant]

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

Parte	Descripción
object	Requerido. Un objeto válido.
Variant	Opcional. El estado actual o el contenido del control.
Valores

Control	Descripción
CheckBox	Un valor entero que indica si el elemento está seleccionado.
	Null   Indica que el elemento está en un estado null, ni seleccionado ni borrado.
	–1   Verdadero. Indica que el elemento esta seleccionado.
	0   Falso. Indica que el elemento esta borrado.
OptionButton	Lo mismo que CheckBox.
ToggleButton	Lo mismo que CheckBox.
ScrollBar	Un valor entero entre los valores especificados para las propiedades Max y Min.
SpinButton	Lo mismo que ScrollBar.
ComboBox, ListBox	El valor en la propiedad BoundColumn de las filas seleccionadas actualmente.
CommandButton	Siempre False.
MultiPage	Un valor entero que indica la página activa actual.
	Cero (0) indica la primera página. El valor máximo es uno menos que el número de páginas.
TextBox	El texto en la región de edición.
Comentarios

BoundValue se aplica al control que tiene el enfoque.

Los contenidos de las propiedades BoundValue y Value son idénticos la mayoría del tiempo. Cuando el usuario modifica un control para que cambie su valor, los contenidos de BoundValue y Value son diferentes hasta que termine el cambio.

Cuando el usuario cambia el valor de un control se producen varias cosas. Por ejemplo, si un usuario cambia el texto de un control TextBox, se produce lo siguiente:

1.	Se inicia el evento Change. En este momento la propiedad Value contiene el texto nuevo y BoundValue contiene el texto anterior.

2.	Se inicia el evento BeforeUpdate.

3.	Se inicia el evento AfterUpdate. Los valores de BoundValue y Value vuelven a ser iguales, conteniendo el nuevo texto.

No se puede utilizar BoundValue con un cuadro de lista de selección múltiple.


Cancel (Propiedad)

Devuelve o establece un valor indicando si un botón de comando es el botón Cancelar en un formulario.

Sintaxis

objeto.Cancel [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el objeto es el botón Cancelar.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El control CommandButton es el botón Cancelar.
False	El control CommandButton no es el botón Cancelar (predeterminado).
Comentarios

Un control CommandButton o un objeto que actúe como un botón de comando se puede designar como el botón de comando predeterminado. Para los controles contenedores OLE, la propiedad Cancel se proporciona solamente para aquellos objetos que se comportan específicamente como botones de comando.

Solamente un control CommandButton de un formulario puede ser el botón Cancelar. Establecer la propiedad Cancel a True para un botón de comando establece automáticamente a False los restantes objetos del formulario. Cuando la propiedad Cancel del control CommandButton se establece a True y el formulario es el formulario activo, el usuario puede elegir el botón de comando haciendo clic en él, presionando ESC o presionando ENTRAR cuando el botón tiene el enfoque.

Un uso normal de la propiedad Cancel es el de dar al usuario la posibilidad de cancelar cambios no confirmados y devolver el formulario a su estado anterior.

Debe considerar la posibilidad de no hacer que el botón Cancelar sea el botón predeterminado para los formularios que ejecuten operaciones que no se puedan deshacer (como eliminar). Para ello, establezca las propiedades Cancel y Default a True.


CanPaste (Propiedad)

Especifica si el Portapapeles contiene datos que son compatibles con el objeto.

Sintaxis

objeto.CanPaste

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores devueltos

La valores devueltos por la propiedad CanPaste son:

Valor	Descripción
True	El objeto que hay debajo del puntero del mouse puede recibir información pegada desde el Portapapeles (predeterminado).
False	El objeto que hay debajo del puntero del mouse no puede recibir información pegada desde el Portapapeles.
Comentarios

CanPaste es de sólo lectura.

Si los datos del Portapapeles están en un formato no compatible con el objeto de destino actual, la propiedad CanPaste es False. Por ejemplo, si intenta pegar un mapa de bits en un objeto que solamente permita texto, la propiedad CanPaste será False.


CanRedo (Propiedad)

Indica si se puede invertir el comando Deshacer más reciente.

Sintaxis

objeto.CanRedo

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores devueltos

Los valores devueltos por la propiedad CanRedo son:

Valor	Descripción
True	Se puede invertir el comando Deshacer más reciente.
False	El comando Deshacer más reciente es irreversible.
Comentarios

CanRedo es de sólo lectura.

Rehacer una acción significa invertir un comando Deshacer; lo que no significa necesariamente repetir la última acción del usuario.

Las siguientes acciones ilustran el uso de los comandos Deshacer y Rehacer:

1.	Cambie el valor de un botón de opción.

2.	Escriba texto en un cuadro de texto.

3.	Haga clic en Deshacer. El texto desaparece del cuadro de texto.

4.	Haga clic en Deshacer. El botón de opción vuelve a tener su valor anterior.

5.	Haga clic en Rehacer. El valor del botón de opción cambia.

6.	Haga clic en Rehacer. El texto vuelve a aparecer en el cuadro de texto.


CanUndo (Propiedad)

Indica si se puede deshacer la última acción del usuario.

Sintaxis

objeto.CanUndo

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores devueltos

Los valores devueltos por la propiedad CanUndo son:

Valor	Descripción
True	Se puede deshacer la acción más reciente del usuario.
False	No se puede deshacer la acción más reciente del usuario.
Comentarios

CanUndo es de sólo lectura.

Muchas acciones de usuario se pueden deshacer con el comando Deshacer. La propiedad CanUndo indica si se puede deshacer la acción más reciente del usuario.


Caption (Propiedad)

Texto descriptivo que identifica o describe a un objeto.

Sintaxis

objeto.Caption [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Una expresión de cadena que califica el texto mostrado como el título.
Valores

La configuración predeterminada para un control es un nombre único basado en el tipo de control. Por ejemplo, CommandButton1 es el título predeterminado para el primer botón de comando de un formulario.

Comentarios

El texto identifica o describe el objeto con el que está asociado. Para los botones y etiquetas, la propiedad Caption especifica el texto que aparece en el control. Para los objetos Page y Tab, especifica el texto que aparece en la ficha.

Si un título de un control es demasiado largo, se trunca. Si el título de un formulario es demasiado largo para la barra de título, el título se muestra con puntos suspensivos.

La propiedad ForeColor del control determina el color del texto en el título.

Sugerencia  Si un control tiene las propiedades Caption y AutoSize, establecer la propiedad AutoSize a True ajusta automáticamente el tamaño del control para enmarcar el título completo.


ClientHeight, ClientLeft, ClientTop, ClientWidth (Propiedades)

Define las dimensiones y ubicación del área de presentación de un control TabStrip.

Sintaxis

objeto.ClientHeight [ =Single]

objeto.ClientLeft [ =Single]

objeto.ClientTop [ =Single]

objeto.ClientWidth [ =Single]

La sintaxis de las propiedades ClientHeight, ClientLeft, ClientTop y ClientWidth consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. Para las propiedades ClientHeight y ClientWidth, especifica el alto o el ancho, en puntos, del área de presentación. Para las propiedades ClientLeft y ClientTop, especifica la distancia, en puntos, desde el límite superior o izquierdo del contenedor del control TabStrip.
Comentarios

En tiempo de ejecución, las propiedades ClientLeft, ClientTop, ClientHeight y ClientWidth almacenan automáticamente las coordenadas y dimensiones del área interna del control TabStrip, que se comparte con los objetos del control TabStrip.


Column (Propiedad)

Especifica uno o más elementos en un control ListBox o ComboBox.

Sintaxis

objeto.Column( columna, fila ) [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Columna	Opcional. Un valor entero entre 0 y uno menos que el número total de columnas.
Fila	Opcional. Un valor entero entre 0 y uno menos que el número total de filas.
Variant	Opcional. Especifica un único valor, una columna de valores o una matriz bidimensional para cargar en el control ListBox o ComboBox.
Valores

Si especifica valores de columnas y filas, la propiedad Column lee o escribe un elemento específico.

Si especifica solamente un valor de columna, la propiedad Column lee o escribe la columna especificada en la fila actual del objeto. Por ejemplo, Micuadrolista.Column (3) lee o escribe la tercera columna en Micuadrolista.

La propiedad Column devuelve una variable Variant desde el cursor. Cuando un cursor incorporado proporciona el valor para la variable Variant (como cuando se utiliza el método AddItem), el valor es una cadena. Cuando un cursor externo propiedad proporciona el valor para la variable Variant, el formato asociado con los datos no se incluye en la variable Variant.

Comentarios

Puede utilizar la propiedad Column para asignar el contenido de un cuadro combinado o un cuadro de lista a otro control, como un cuadro de texto. Por ejemplo, puede establecer la propiedad ControlSource de un cuadro de texto al valor de la segunda columna de un cuadro de lista.

Si el usuario no selecciona nada cuando se hace referencia a una columna en un cuadro combinado o un cuadro de lista, la propiedad Column se establece a Null. Puede comprobar esta condición utilizando la función IsNull.

También puede utilizar la propiedad Column para copiar una matriz bidimensional completa de valores a un control. Esta sintaxis le permite cargar rápidamente una lista de opciones en vez de cargar individualmente cada elemento de la lista utilizando AddItem.

Nota  Cuando copia datos de una matriz bidimensional, la propiedad Column transpone el contenido de la matriz en el control de modo que el contenido de Cuadrolista1.Column(X, Y) sea el mismo que Mimatriz(Y, X). También puede utilizar la propiedad List para copiar una matriz sin transponerla.


ColumnCount (Propiedad)

Especifica el número de columnas que se van a mostrar en un cuadro de lista o un cuadro combinado.

Sintaxis

objeto.ColumnCount [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Especifica el número de columnas a mostrar.
Comentarios

Si establece la propiedad ColumnCount para un cuadro de lista a 3 en un formulario de empleados, una columna puede enumerar los apellidos, otra los nombres y la tercera los números de identificación de empleado.

Establecer la propiedad ColumnCount a 0 no muestra ninguna columna, y establecerla a -1 muestra todas las columnas disponibles. Para un origen de datos independiente, existe un límite de 10 columnas (de 0 a 9).

Puede utilizar la propiedad ColumnWidths para establecer el ancho de las columnas mostradas en el control.


ColumnHeads (Propiedad)

Muestra una única fila de títulos de columna para los cuadros de lista, cuadros combinados y objetos que acepten títulos de columna.

Sintaxis

objeto.ColumnHeads [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Especifica si se muestran o no títulos de columna.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Muestra títulos de columna.
False	No muestra títulos de columna (predeterminado).
Los títulos en los cuadros combinados solamente se muestran cuando se despliega la lista.

Comentarios

Cuando el sistema utiliza la primera fila de los elementos de datos como títulos de columna, no se pueden seleccionar.


ColumnWidths (Propiedad)

Especifica el ancho de cada columna en un cuadro combinado o un cuadro de lista de múltiples columnas.

Sintaxis

objeto.ColumnWidths [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Establece el ancho de columna en puntos. Un valor –1 o espacio en blanco da como resultado un ancho calculado. Un ancho de 0 oculta la columna. Para especificar unidades de medida diferentes, incluya la unidad de medida. Un valor mayor que 0 especifica explícitamente el ancho de la columna.
Valores

Para separar las entradas de columna, utilice puntos y comas (;) como separadores de listas. O bien, utilice el separador de listas especificado en la sección Configuración regional del Panel de control de Windows.

Cualquiera o todos los valores de las propiedades ColumnWidths pueden estar en blanco. Puede crear un valor en blanco escribiendo un separador de lista sin un valor anterior.

Si especifica un valor–1 en la página de propiedad, el valor mostrado en la página de propiedad es un espacio en blanco.

Para calcular los anchos de las columnas cuando la propiedad ColumnWidths es espacio en blanco o –1, el ancho del control se divide por igual entre todas las columnas de la lista. Si la suma de los anchos de columna especificados excede el ancho del control, la lista se alinea a la izquierda dentro del control y una o más de las columnas situadas más a la derecha no se muestran. Los usuarios pueden desplazarse a través de la lista utilizando la barra de desplazamiento horizontal para mostrar las columnas situadas más a la derecha.

El mínimo ancho de columna calculado es de 72 puntos (1 pulgada). Para crear columnas más estrechas, debe especificar el ancho explícitamente.

A menos que especifique lo contrario, los anchos de columna se miden en puntos. Para especificar otra unidad de medida, incluya las unidades como parte de valores. Los siguientes ejemplos especifican anchos de columna en varias unidades de medida y describen cómo varios valores cabrían en un cuadro de lista de tres columnas que tiene 4 pulgadas de ancho.

Valor	Efecto
90;72;90	La primera columna es de 90 puntos (1,25 pulgadas); la segunda columna es de 72 puntos (1 pulgada); la tercera columna es de 90 puntos.
6 cm;0;6 cm	La primera columna es de 6 centímetros; la segunda columna está oculta; la tercera columna es de 6 centímetros. Como sólo es visible una parte de la tercera columna, se muestra una barra de desplazamiento horizontal.
1,5 in;0;2,5 in	La primera columna es de 1,5 pulgadas; la segunda columna está oculta; la tercera columna es de 2,5 pulgadas.
2 in;;2 in	La primera columna es de 2 pulgadas, la segunda columna es de 1 pulgada (predeterminado) y la tercera columna es de 2 pulgadas. Como sólo es visible una parte de la tercera columna, se muestra una barra de desplazamiento horizontal.
(En blanco)	Las tres columnas tienen el mismo ancho (1,33 pulgadas).
Comentarios

En un cuadro combinado, el sistema muestra la columna designada por la propiedad TextColumn en la parte de cuadro de texto del control.


ControlSource (Propiedad)

Identifica la ubicación de los datos utilizada para almacenar la propiedad Value de un control.

Sintaxis

objeto.ControlSource [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Especifica la celda de la hoja de cálculo vinculada a la propiedad Value de un control.
Comentarios

La propiedad ControlSource identifica un celda o un campo; no contiene los datos almacenados en la celda o el campo. Si cambia la propiedad Value del control, el cambio se refleja automáticamente en la celda o el campo vinculado. De modo parecido, si cambia el valor de la celda o del campo vinculado, el cambio se refleja automáticamente en la propiedad Value del control.

No puede especificar otro control para la propiedad ControlSource. Si lo hace se produce un error.

El valor predeterminado para la propiedad ControlSource es una cadena vacía. Si la propiedad ControlSource contiene un valor distinto de una cadena vacía, éste identifica a una celda o un campo vinculado. El contenido de esa celda o campo se copia automáticamente a la propiedad Value cuando se carga el control.

Nota  Si la propiedad Value es Null, no aparece ningún valor en la ubicación identificada por la propiedad ControlSource.


ControlTipText (Propiedad)

Especifica el texto que se muestra cuando el usuario mantiene brevemente el puntero del mouse sobre un control sin hacer clic.

Sintaxis

objeto.ControlTipText [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. El texto que se muestra cuando el usuario mantiene el puntero del mouse sobre un control.
Comentarios

La propiedad ControlTipText le permite dar al usuario sugerencias sobre un control del formulario que se está ejecutando. La propiedad puede establecerse en tiempo de diseño pero sólo se muestra en tiempo de ejecución.

El valor predeterminado de la propiedad ControlTipText es una cadena vacía. Cuando el valor de la propiedad ControlTipText se establece a una cadena vacía, no hay ninguna sugerencia disponible para ese control.


Count (Propiedad)

Devuelve el número de objetos en una colección.

Sintaxis

objeto.Count

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad Count es de sólo lectura.

Observe que el valor del índice para la primera página o ficha de una colección es cero, el valor para la segunda página o ficha es uno, y así sucesivamente. Por ejemplo, si un control MultiPage contiene dos páginas, los índices de las páginas son 0 y 1, y el valor de la propiedad Count es 2.


CurLine (Propiedad)

Especifica la línea actual de un control.

Sintaxis

objeto.CurLine [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Especifica la línea actual de un control.
Comentarios

La línea actual de un control es la línea que contiene el punto de inserción. El número de la primera línea es cero.

La propiedad CurLine es válida cuando el control tiene el enfoque.


CurTargetX (Propiedad)

Recupera la posición horizontal preferida del punto de inserción en un control TextBox o ComboBox de múltiples líneas.

Sintaxis

objeto.CurTargetX [ =Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores devueltos

La propiedad CurTargetX recupera la posición requerida en micras. Una micra es 0,0001 metros.

Comentarios

La posición de destino es relativa al borde izquierdo del control. Si la longitud de una línea es menor que el valor de la propiedad CurTargetX, puede colocar el punto de inserción al final de la línea. El valor de la propiedad CurTargetX cambia cuando el usuario establece el punto de inserción o cuando se establece la propiedad CurX. La propiedad CurTargetX es de sólo lectura.

El valor devuelto es válido cuando el objeto tiene el enfoque.

Puede utilizar las propiedades CurTargetX y CurX para mover el punto de inserción como el usuario se desplaza a través del contenido de un control TextBox o ComboBox de múltiples líneas. Cuando el usuario mueve el punto de inserción a otra línea de texto desplazando el contenido del objeto, la propiedad CurTargetX especifica la posición preferida para el punto de inserción. La propiedad CurX se establece a este valor si la línea de texto es más larga que el valor de la propiedad CurTargetX. De lo contrario, la propiedad CurX se establece al final de la línea de texto.


CurX (Propiedad)

Especifica la posición horizontal actual del punto de inserción en un control TextBox o ComboBox de múltiples líneas.

Sintaxis

objeto.CurX [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Indica la posición actual, medida en décimas de milímetro. Una décima de milímetro es 0,0001 metros.
Comentarios

La propiedad CurX se aplica a un control TextBox o ComboBox de múltiples líneas. El valor devuelto es válido cuando el objeto tiene el enfoque.

Puede utilizar las propiedades CurTargetX y CurX para situar el punto de inserción a medida que el usuario se desplaza a través del contenido de un control TextBox o ComboBox de múltiples líneas. Cuando el usuario mueve el punto de inserción a otra línea de texto desplazando el contenido del objeto, la propiedad CurTargetX especifica la posición preferida para el punto de inserción. La propiedad CurX se establece a este valor si la línea de texto es más larga que el valor de la propiedad CurTargetX. De lo contrario, la propiedad CurX se establece al final de la línea de texto.


Cycle (Propiedad)

Especifica la acción que se va a ejecutar cuando el usuario abandone el último control en un control Frame o Page.

Sintaxis

objeto.Cycle [= fmCycle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmCycle	Opcional. Especifica si el recorrido cíclico incluye controles anidados en un control Frame o MultiPage.
Valores

Los valores para fmCycle son:

Constante	Valor	Descripción
fmCycleAllForms	0	Ciclos a través de los controles en el formulario y de los controles Frame y MultiPage que se muestran del formulario.
FmCycleCurrentForm	2	Ciclos a través de los controles del formulario, el control Frame o el control MultiPage. El enfoque permanece dentro del formulario, control Frame o control MultiPage hasta que se establezca explícitamente en un control fuera del formulario, control Frame o el control MultiPage.
Si especifica un valor no entero para la propiedad Cycle, el valor se redondea hacia el número entero superior más cercano.

Comentarios

El orden de tabulación identifica el orden en el cual los controles reciben el enfoque cuando el usuario presiona TAB a través de un formulario o subformulario. La propiedad Cycle determina la acción que se ejecutará cuando el usuario presione TAB desde el último control en el orden de tabulación.

El valor de fmCycleAllForms transfiere el enfoque al primer control del siguiente control Frame o MultiPage del formulario cuando el usuario presiona TAB desde el último control en el orden de tabulación.

El valor de fmCycleCurrentForm transfiere el enfoque al primer control del mismo formulario, control Frame o control MultiPage cuando el usuario presiona TAB desde el último control en el orden de tabulación.


Default (Propiedad)

Designa el botón de comando predeterminado de un formulario.

Sintaxis

objeto.Default [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el botón de comando es el predeterminado.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El control CommandButton es el botón predeterminado.
False	El control CommandButton no es el botón predeterminado (predeterminado).
Comentarios

Un control CommandButton o un objeto que actúa como un botón de comando se puede designar como el botón de comando predeterminado. Solamente un objeto de un formulario puede ser el botón de comando predeterminado. Establecer la propiedad Default a True para un objeto establece automáticamente a False la propiedad para el resto de los objetos del formulario.

Para elegir el botón de comando predeterminado en un formulario activo, el usuario puede hacer clic en el botón o presionar ENTRAR cuando ningún otro control CommandButton tiene el enfoque. Presionar ENTRAR cuando ningún otro CommandButton tiene el enfoque también inicia el evento KeyUp para el botón de comando predeterminado.

La propiedad Default se proporciona para los controles contenedores OLE que actúan específicamente como controles CommandButton.

Sugerencia  Debe considerar la posibilidad de hacer el botón Cancelar el botón predeterminado para los formularios que ejecuten operaciones que no se puedan deshacer (como eliminar). Para ello, establezca las propiedades Cancel y Default a True.


Delay (Propiedad)

Especifica el retardo para los eventos SpinUp, SpinDown y Change en un control SpinButton o ScrollBar.

Sintaxis

objeto.Delay [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. El retardo, en milisegundos, entre los eventos.
Comentarios

La propiedad Delay afecta a la cantidad de tiempo entre eventos SpinUp, SpinDown y Change consecutivos generados cuando el usuario hace clic y mantiene presionado un botón en un control SpinButton o ScrollBar. El primer evento se produce inmediatamente. El retardo para la segunda ocurrencia del evento es cinco veces el valor de la propiedad Delay especificada. Este retraso inicial hace más fácil generar un único evento que una corriente de eventos.

Después del retraso inicial, el intervalo entre eventos es el valor especificado para la propiedad Delay.

El valor predeterminado de la propiedad Delay es de 50 milisegundos. Esto significa que el objeto inicia el primer evento 250 milisegundos después (5 veces el valor especificado) e inicia cada evento subsiguiente después de 50 milisegundos.


DragBehavior (Propiedad)

Especifica si el sistema habilita la característica de arrastrar y colocar para un control TextBox o ComboBox.

Sintaxis

objeto.DragBehavior [= fmDragBehavior]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmDragBehavior	Opcional. Especifica si la característica de arrastrar y colocar está habilitada.
Valores

Los valores para fmDragBehavior son:

Constante	Valor	Descripción
fmDragBehaviorDisabled	0	No permite una acción de arrastrar y colocar (predeterminado).
FmDragBehaviorEnabled	1	Permite una acción de arrastrar y colocar.
Comentarios

Si la propiedad DragBehavior está habilitada, arrastrar en un cuadro de texto o un cuadro combinado inicia una operación de arrastrar y colocar en el texto seleccionado. Si la propiedad DragBehavior está deshabilitada, arrastrar en un cuadro de texto o un cuadro combinado selecciona texto.

La parte desplegable de un control ComboBox no admite procesos de arrastrar y colocar, ni admite la selección de elementos de lista dentro del texto.

La propiedad DragBehavior no tiene efecto en un control ComboBox cuya propiedad Style es fmStyleDropDownList.

Nota  Puede combinar los efectos de las propiedades EnterFieldBehavior y DragBehavior para crear un gran número de estilos de cuadros de texto.


DrawBuffer (Propiedad)

Especifica el número de pixeles reservados para la memoria fuera de la pantalla en el procesamiento de un marco.

Sintaxis

objeto.DrawBuffer [= valor]

Parte	Descripción
objeto	Requerido. Un objeto válido.
valor	Un número entero entre 16.000 y 1.048.576 igual al número máximo de pixeles que el objeto puede procesar fuera de la pantalla.
Comentarios

La propiedad  DrawBuffer especifica el número máximo de pixeles que se pueden dibujar de una vez cuando la pantalla se vuelve a dibujar. La memoria actual utilizada por el objeto depende de la resolución de la pantalla. Si establece un valor grande para la propiedad DrawBuffer, el rendimiento será menor. Un búfer grande sólo ayuda cuando se superponen grandes imágenes.

Utilice la ventana Properties para especificar el valor de la propiedad DrawBuffer.


DropButtonStyle (Propiedad)

Especifica el símbolo mostrado en el botón de desplegar en un control ComboBox.

Sintaxis

objeto.DropButtonStyle [= fmDropButtonStyle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmDropButtonStyle	Opcional. La apariencia del botón de desplegar.
Valores

Los valores para fmDropButtonStyle son:

Constante	Valor	Descripción
fmDropButtonStylePlain	0	Muestra un botón sin formato, sin símbolo.
fmDropButtonStyleArrow	1	Muestra una flecha hacia abajo (predeterminado).
fmDropButtonStyleEllipsis	2	Muestra puntos suspensivos ().
fmDropButtonStyleReduce	3	Muestra una línea horizontal como un carácter de subrayado.
Comentarios

El valor recomendado para mostrar elementos en una lista es fmDropButtonStyleArrow. Si desea utilizar el botón de desplegar de otro modo, como para mostrar un cuadro de diálogo, especifique fmDropButtonStyleEllipsis, fmDropButtonStylePlain o fmDropButtonStyleReduce e intercepte el evento DropButtonClick.


Enabled (Propiedad)

Especifica si un control puede recibir el enfoque y responder a eventos generados por el usuario.

Sintaxis

objeto.Enabled [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el objeto puede responder a eventos generados por el usuario.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El control puede recibir el enfoque y responder a eventos generados por el usuario, y se puede tener acceso al mismo mediante código (predeterminado).
False	El usuario no puede interactuar con el control utilizando el mouse, pulsaciones de teclas, teclas aceleradoras o teclas de acceso directo. Generalmente se puede tener acceso al control mediante código.
Comentarios

Utilice la propiedad Enabled para habilitar y deshabilitar controles. Un control deshabilitado se muestra atenuado, mientras que un control habilitado no. Además, si un control muestra un mapa de bits, el mapa de bits se atenúa siempre que el control está atenuado. Si la propiedad Enabled es False para un control Image, el control no inicia eventos, pero no aparece atenuado.

Las propiedades Enabled y Locked funcionan conjuntamente para lograr los siguientes efectos:

•	Si las propiedades Enabled y Locked están ambas a True, el control puede recibir el enfoque y se muestra en formato normal (no atenuado) en el formulario. El usuario puede copiar, pero no editar, los datos del control.

•	Si la propiedad Enabled es True y la propiedad Locked es False, el control puede recibir el enfoque y se muestra en formato normal en el formulario. El usuario puede copiar y editar los datos del control.

•	Si la propiedad Enabled es False y la propiedad Locked es True, el control no puede recibir el enfoque y se muestra atenuado en el formulario. El usuario no puede copiar y ni editar los datos del control.

•	Si las propiedades Enabled y Locked están ambas a False, el control no puede recibir el enfoque y se muestra atenuado en el formulario. El usuario no puede copiar y ni editar los datos del control.

Puede combinar los valores de las propiedades Enabled y TabStop para evitar que el usuario seleccione un botón de comando con la tecla TAB, mientras todavía se le permite hacer clic en el botón. Establecer la propiedad TabStop a False significa que el botón de comando no se muestra en el orden de tabulación. Sin embargo, si la propiedad Enabled es True, el usuario puede hacer clic en el botón de comando, siempre y cuando la propiedad TakeFocusOnClick se establezca a True.

Cuando el usuario presiona TAB en un control MultiPage o TabStrip habilitado, recibe el enfoque la primera página o ficha del control. Si la primera página o ficha de un control MultiPage o TabStrip está deshabilitada, la primera página o ficha habilitada de ese control recibe el enfoque. Si todas las páginas o fichas de un control MultiPage o TabStrip están deshabilitadas, el control se deshabilita y no puede recibir el enfoque.

Si un control Frame está deshabilitado, todos los controles que contiene están deshabilitados.

Hacer clic en un control ListBox deshabilitado no inicia el evento Click.


EnterFieldBehavior (Propiedad)

Especifica el comportamiento de la selección cuando entra en un control TextBox o ComboBox.

Sintaxis

objeto.EnterFieldBehavior [= fmEnterFieldBehavior]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmEnterFieldBehavior	Opcional. El comportamiento deseado de la selección.
Valores

Los valores para fmEnterFieldBehavior son:

Constante	Valor	Descripción
fmEnterFieldBehaviorSelectAll	0	Selecciona todo el contenido del área de edición cuando entra en el control (predeterminado).
fmEnterFieldBehaviorRecallSelection	1	Mantiene sin cambios la selección. Visualmente, utiliza la selección que estaba en efecto la última vez que estuvo activo el control.
Comentarios

La propiedad EnterFieldBehavior controla el modo en que el texto se selecciona cuando el usuario se mueve al control, no cuando el control recibe el enfoque como resultado del método SetFocus. A continuación de SetFocus, el contenido del control no se selecciona y el punto de inserción aparece después del último carácter en la zona de edición del control.


EnterKeyBehavior (Propiedad)

Define el efecto de presionar ENTRAR en un control TextBox.

Sintaxis

objeto.EnterKeyBehavior [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Especifica el efecto de presionar ENTRAR.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Al presionar ENTRAR se crea una nueva línea.
False	Al presionar ENTRAR se mueve el enfoque al siguiente objeto en el orden de tabulación (predeterminado).
Comentarios

Las propiedades EnterKeyBehavior y MultiLine están estrechamente relacionadas. Los valores descritos anteriormente solamente se aplican si la propiedad MultiLine es True. Si la propiedad MultiLine es False, al presionar ENTRAR siempre se mueve el enfoque al siguiente control en el orden de tabulación sin tener en cuenta el valor de EnterKeyBehavior.

El efecto de presionar CTRL+ENTRAR también depende del valor de la propiedad MultiLine. Si la propiedad MultiLine es True, al presionar CTRL+ENTRAR se crea una nueva línea sin tener en cuenta el valor de EnterKeyBehavior. Si la propiedad MultiLine es False, presionar CTRL+ENTRAR no tiene ningún efecto.


ForeColor (Propiedad)

Especifica el color de primer plano de un objeto.

Sintaxis

objeto.ForeColor [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un valor o constante que determina el color de primer plano de un objeto.
Valores

Puede utilizar cualquier número entero que represente un color válido. También puede especificar un color utilizando la función RGB con los componentes de color rojo, verde y azul. El valor de cada componente de color es un número entero entre 0 y 255. Por ejemplo, puede especificar el verde azulado como el valor entero 4966415 o como componentes de color rojo, verde y azul con valores 15, 200, 75.

Comentarios

Utilice la propiedad ForeColor para controles de formularios con el fin de hacerlos más fáciles de leer o para transmitir un significado especial. Por ejemplo, si un cuadro de texto informa del número de unidades en almacén, puede cambiar el color del texto cuando el valor caiga por debajo del nivel de nuevo pedido.

Para un control ScrollBar o SpinButton, la propiedad ForeColor establece el color de las flechas. Para un control Frame, la propiedad ForeColor cambia el color del título. Para un objeto Font, la propiedad ForeColor determina el color del texto.


GroupName (Propiedad)

Crea un grupo de controles OptionButton que se excluyen mutuamente.

Sintaxis

objeto.GroupName [= String]

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

Parte	Descripción
objeto	Requerido. Un control OptionButton válido.
String	Opcional. El nombre del grupo que incluye el control OptionButton. Utilice el mismo valor para todos los botones del grupo. El valor predeterminado es una cadena vacía.
Comentarios

Para crear un grupo de controles OptionButton que se excluyen mutuamente, puede colocar los botones en un control Frame del formulario o puede utilizar la propiedad GroupName. GroupName es más eficaz por las siguientes razones:

•	No tiene que incluir un control Frame para cada grupo. Sin utilizar un control Frame, disminuye el número de controles en el formulario, y por tanto, mejora el rendimiento y disminuye el tamaño del formulario.

•	Tiene mayor flexibilidad de diseño. Si utiliza un control Frame para crear el grupo, todos los botones deben estar dentro del control Frame. Si desea más de un grupo, debe tener un control Frame para cada grupo. Sin embargo, si utiliza la propiedad GroupName para crear el grupo, el grupo puede incluir botones de opción en cualquier parte del formulario. Si desea más de un grupo, especifique un nombre único para cada grupo; todavía puede colocar los controles individuales en cualquier parte del formulario.

•	Puede crear botones con fondos transparente, que pueden mejorar la apariencia visual del formulario. El control Frame no es un control transparente.

Sin tener en cuenta el método que utilice para crear el grupo de botones, al hacer clic en un botón de un grupo establece a False todos los otros botones del mismo grupo. Todos los botones de opción con la misma propiedad GroupName dentro de un contenedor sencillo se excluyen mutuamente. Puede utilizar el mismo nombre de grupo en dos contenedores, pero hacerlo crea dos grupos (uno en cada contenedor) en vez de un grupo que incluye dos contenedores.

Por ejemplo, suponga que el formulario incluye algunos botones de opción y un control MultiPage que también incluye botones de opción. Los botones de opción del control MultiPage son un grupo y los botones del formulario son de otro grupo. Los dos grupos no se afectan entre sí. Cambiar el valor de un botón del control MultiPage no afecta a los botones del formulario.


Height, Width (Propiedad)

El alto o el ancho, en puntos de un objeto.

Sintaxis

objeto.Height [= Single]

objeto.Width [= Single]

La sintaxis de las propiedades Height y Width consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. Una expresión numérica que especifica las dimensiones de un objeto.
Comentarios

Las propiedades Height y Width se actualizan automáticamente cuando mueve o ajusta el tamaño de un control. Si cambia el tamaño de un control, las propiedades Height o Width almacenan la nueva altura o el ancho y las propiedades OldHeight u OldWidth almacenan el alto o el ancho anterior. Si especifica un valor para las propiedades Left o Top que sea menor que cero, ese valor se utilizará para calcular el alto o ancho del control, pero una parte del control no será visible en el formulario.

Si mueve un control de una parte a otra del formulario, el valor de las propiedades Height o Width solamente cambia si ajusta el tamaño del control cuando lo mueve. Los valores de las propiedades Left y Top del control cambiarán para reflejar la nueva posición del control con respecto a los bordes del formulario que lo contiene.

El valor asignado a las propiedades Height o Width debe ser mayor o igual a cero. Para la mayoría de los sistemas, el intervalo recomendado de valores es de 0 a +32767. También pueden funcionar con valores más altos dependiendo de la configuración de su sistema.


HelpContextID (Propiedad)

Asocia un tema específico en el archivo de Ayuda personalizado de Microsoft Windows con un control específico.

Sintaxis

objeto.HelpContextID [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un número entero positivo que especifica el Id de contexto de un tema en el archivo de Ayuda asociado al objeto. Cero indica que no hay tema de Ayuda asociado al objeto (predeterminado). Debe ser un identificador de contexto válido en el archivo de Ayuda especificado.
Comentarios

El tema identificado por la propiedad HelpContextID está disponible para los usuarios cuando se ejecuta el formulario. Para mostrar el tema, el usuario debe seleccionar el control o establecer el enfoque en el control y presionar F1.

La propiedad HelpContextID se refiere a un tema en el archivo de Ayuda personalizado que ha creado para describir su formulario o aplicación. En Visual Basic, el archivo de Ayuda personalizado es una propiedad del proyecto.


HideSelection (Propiedad)

Especifica si el texto seleccionado permanece resaltado cuando un control no tiene el enfoque.

Sintaxis

objeto.HideSelection [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el texto seleccionado permanece resaltado incluso cuando el control no tiene el enfoque.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El texto seleccionado no está resaltado a menos que el control tenga el enfoque (predeterminado).
False	El texto seleccionado siempre se muestra resaltado.
Comentarios

Puede utilizar la propiedad HideSelection para mantener resaltado el texto cuando otro formulario o cuadro de diálogo recibe el enfoque, como en un procedimiento de corrección ortográfica.


IMEMode (Propiedad)

Especifica el modo predeterminado en tiempo de ejecución del Input Method Editor (IME) para un control. Esta propiedad sólo se aplica a aplicaciones escritas para el Lejano Oriente y se pasan por alto en otras aplicaciones.

Sintaxis

objeto.IMEMode [= fmIMEMode]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmIMEMode	Opcional. El modo del Editor de método de entrada(IME).
Valores

Los valores para fmIMEMode son:

Constante	Valor	Descripción
fmIMEModeNoControl	0	No hay control de IME (predeterminado).
FmIMEModeOn	1	IME activado.
FmIMEModeOff	2	IME desactivado. Modo inglés.
FmIMEModeDisable	3	IME desactivado. El usuario no puede activar IME con el teclado.
FmIMEModeHiragana	4	IME activado con modo Hiragana de tamaño completo.
FmIMEModeKatakana	5	IME en modo Katakana de tamaño completo.
FmIMEModeKatakanaHalf	6	IME en modo Katakana de tamaño medio.
FmIMEModeAlphaFull	7	IME en modo alfanumérico de tamaño completo.
FmIMEModeAlpha	8	IME en modo alfanumérico de tamaño medio.
Los valores de fmIMEModeNoControl indican que le modo del IME no cambia cuando el control recibe el enfoque en tiempo de ejecución. Para cualquier otro valor, el modo del IME se establece al valor especificado por la propiedad IMEMode cuando el control recibe el enfoque en tiempo de ejecución.

Comentarios

Hay dos maneras de establecer el modo del IME. Una es mediante la barra de herramientas del IME. La otra es con la propiedad IMEMode de un control, la cual establece o devuelve el modo actual del IME. Esta propiedad permite el control dinámico del IME mediante código.

El ejemplo siguiente explica cómo la propiedad IMEMode interactúa con la barra de herramientas del IME. Suponga que ha diseñado un formulario con TextBox1 y CheckBox1. Ha establecido TextBox1.IMEMode a 0 y CheckBox1.IMEMode a 1. Mientras en modo de diseño ha utilizado la barra de herramientas de IME para establecer el IME en modo 2.

Cuando ejecute el formulario, el IME comienza en modo 2. Si hace clic en TextBox1, el modo IME no cambia porque la propiedad IMEMode para este control es 0. Si hace clic en CheckBox1, el IME cambia a modo 1, porque la propiedad IMEMode para este control es 1. Si hace clic de nuevo en Cuadrodetexto1, el IME permanece en modo 1 (la propiedad IMEMode es 0, por lo que el IME retiene su último valor).

Sin embargo, se puede pasar por alto la propiedad IMEMode. Por ejemplo, suponga que hace clic en CheckBox1y el IME entra en el modo 1, como se definió para la propiedad IMEMode del control CheckBox. Si utiliza la barra de herramientas del IME para colocar el IME en modo 3, el IME se establecerá al modo 3 cuando haga clic en el control. Esto no cambia el valor de la propiedad, sino que se pasa por alto la propiedad hasta la siguiente vez que ejecute el formulario.


Index (Propiedad)

La posición de un objeto Tab dentro de una colección Tabs o de un objeto Page en una colección Pages.

Sintaxis

objeto.Index [= Integer]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Integer	Opcional. El índice del objeto Tab seleccionado actualmente.
Comentarios

La propiedad Index especifica en qué orden se muestran las fichas. Cambiar el valor de la propiedad Index cambia visualmente el orden de los objetos Page en un control MultiPage o los objetos Tab en un control TabStrip. El valor del índice para la primera página o ficha es cero, el valor del índice para la segunda página o ficha es uno, y así sucesivamente.

En un control MultiPage, la propiedad Index hace referencia a un objeto Page y a un objeto Tab de la página. En un control TabStrip, la propiedad Index hace referencia solamente a la ficha.


InsideHeight, InsideWidth (Propiedades)

La propiedad InsideHeight devuelve el alto, en puntos, del región del cliente dentro de un formulario. La propiedad InsideWidth devuelve el ancho, en puntos, del área del cliente dentro de un formulario.

Sintaxis

objeto.InsideHeight

objeto.InsideWidth

La sintaxis de las propiedades InsideHeight y InsideWidth consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

Las propiedades InsideHeight y InsideWidth son de sólo lectura. Si el área incluye una barra de desplazamiento, el valor devuelto no incluye el alto o el ancho de la barra de desplazamiento.


IntegralHeight (Propiedad)

Indica si un control ListBox o TextBox muestra líneas completas de texto en una lista o líneas parciales.

Sintaxis

objeto.IntegralHeight [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si la lista muestra líneas parciales de texto.
Valores

Los valores para Boolean son:

Valor	Descripción
True	La lista cambia de tamaño por sí misma cuando muestra solamente elementos completos (predeterminado).
False	La lista no cambia de tamaño por sí misma incluso si el elemento es demasiado alto para mostrarse completamente.
Comentarios

La propiedad IntegralHeight se relaciona con el alto de la lista, de la misma forma que la propiedad AutoSize se relaciona con el ancho de la lista.

Si la propiedad IntegralHeight es True, el cuadro de lista cambia de tamaño automáticamente cuando es necesario mostrar filas completas. Si es False, la lista permanece de un tamaño fijo; si los elementos son más altos que el espacio disponible en la lista, no se muestra el elemento completo.


TakeFocusOnClick (Propiedad)

Especifica si un control recibe el enfoque cuando se hace clic en él.

Sintaxis

objeto.TakeFocusOnClick [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si un control recibe el enfoque cuando se hace clic en él.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El botón tiene el enfoque cuando se hace clic en él (predeterminado).
False	El botón no tiene el enfoque cuando se hace clic en él.
Comentarios

La propiedad TakeFocusOnClick define solamente lo que sucede cuando el usuario hace clic en un control. Si el usuario presiona la tecla TAB en el control, éste tiene el enfoque sin tener en cuenta el valor de la propiedad TakeFocusOnClick.

Utilice esta propiedad para completar acciones que afecten a un control que no requieran que ese control renuncie al enfoque. Por ejemplo, suponga que su formulario incluye un control TextBox y un control CommandButton que comprueben la ortografía correcta del texto. Desearía ser capaz de seleccionar texto en el control TextBox, y después hacer clic en el control CommandButton y ejecutar el corrector ortográfico sin tener que tomar el enfoque desde el control TextBox. Puede hacer esto estableciendo la propiedad TakeFocusOnClick del control CommandButton a False.


KeepScrollBarsVisible (Propiedad)

Especifica si las barras de desplazamiento permanecen visibles cuando no se necesitan.

Sintaxis

objeto.KeepScrollBarsVisible [= fmScrollBars]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmScrollBars	Opcional. Dónde se muestran las barras de desplazamiento.
Valores

Los valores para fmScrollBars son:

Constante	Valor	Descripción
fmScrollBarsNone	0	No muestra ninguna barra de desplazamiento.
fmScrollBarsHorizontal	1	Muestra una barra de desplazamiento horizontal.
fmScrollBarsVertical	2	Muestra una barra de desplazamiento vertical.
fmScrollBarsBoth	3	Muestra ambas barras de desplazamiento, una horizontal y una vertical (predeterminado).
Comentarios

Si el área visible es suficientemente grande para mostrar todos los controles de un objeto como un objeto Page o un formulario, no son necesarias las barras de desplazamiento. La propiedad KeepScrollBarsVisible determina si las barras de desplazamiento permanecen visibles cuando no se necesitan.

Si las barras de desplazamiento son visibles cuando no se necesitan, se muestran de un tamaño normal y el cuadro de desplazamiento llena por completo el ancho o el alto de la barra de desplazamiento.


LargeChange (Propiedad)

Especifica la cantidad de movimiento que se produce cuando el usuario hace clic entre el cuadro de desplazamiento y la flecha de desplazamiento.

Sintaxis

objeto.LargeChange [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un valor entero que especifica la cantidad de cambio de la propiedad Value.
Comentarios

La propiedad LargeChange sólo se aplica al control ScrollBar. No se aplica a las barras de desplazamiento de otros controles como un control TextBox o un ComboBox desplegable.

El valor de LargeChange es la cantidad por la cual la propiedad Value del control ScrollBar cambia cuando el usuario hace clic en el área comprendida entre el cuadro de desplazamiento y la flecha de desplazamiento. La dirección del movimiento siempre se realiza hacia el lugar donde el usuario hace clic. Por ejemplo, en un control ScrollBar horizontal, hacer clic a la izquierda del cuadro de desplazamiento mueve el cuadro de desplazamiento a la izquierda. En un control ScrollBar vertical, hacer clic encima del cuadro de desplazamiento mueve el cuadro de desplazamiento hacia arriba.

La propiedad LargeChange no tiene unidades. Cualquier número entero es un valor válido par la propiedad LargeChange. El intervalo de valores recomendados es desde –32767 a +32767 y el valor debe estar comprendido entre los valores de las propiedades Max y Min del control ScrollBar.


LayoutEffect (Propiedad)

Especifica si se movió un control durante un cambio de diseño.

Sintaxis

objeto.LayoutEffect

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmLayoutEffect	Opcional. Si se movió el control.
Return Valores

El argumento fmLayoutEffect tiene los siguientes valores:

Constante	Valor	Descripción
fmLayoutEffectNone	0	El control no se movió.
fmLayoutEffectInitiate	1	El control se movió.
Comentarios

La propiedad LayoutEffect es de sólo lectura y sólo está disponible en el evento Layout. El evento Layout se inicia mediante el método Move si el argumento Layout es True.

El evento Layout no se inicia cuando cambia los valores de las propiedades Left, Top, Height o Width de un control.

El evento Layout establece LayoutEffect para cualquier control implicado en una operación de movimiento. Por ejemplo, si mueve un grupo de controles se establece la propiedad LayoutEffect de cada control.


Left, Top (Propiedades)

La distancia entre un control y el borde izquierdo o superior del formulario que lo contiene.

Sintaxis

objeto.Left [= Single]

objeto.Top [= Single]

La sintaxis de las propiedades Left y Top consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. Una expresión numérica que especifica las coordenadas de un objeto.
Valores

Establecer la propiedad Left o Top a 0 coloca el borde del control en el borde izquierdo o superior de su contenedor.

Comentarios

Para la mayoría de los sistemas, el intervalo de valores recomendados para las propiedades Left y Top son desde -32767 a +32767. También pueden funcionar otros valores dependiendo de la configuración de su sistema. Para un control ComboBox, los valores de las propiedades Left y Top se aplican a la parte de texto del control, no a la parte de lista. Cuando mueve o ajusta el tamaño de un control, el nuevo valor de la propiedad Left se introduce automáticamente en la hoja de propiedades. Cuando imprime un formulario, la ubicación horizontal o vertical del control se determina por su valor de la propiedad Left o Top.


LineCount (Propiedad)

Devuelve el número de líneas de texto en un control TextBox o ComboBox.

Sintaxis

objeto.LineCount

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad LineCount es de sólo lectura.

Nota  Un control ComboBox solamente tendrá una línea.


List (Propiedad)

Devuelve o establece las entradas de la lista de un control ListBox o ComboBox.

Sintaxis

objeto.List( fila, columna ) [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fila	Requerido. Un número entero entre 0 y uno menos que el número de entradas de la lista.
columna	Requerido. Un número entero entre 0 y uno menos que el número de columnas.
Variant	Opcional. El contenido de la entrada especificada en el control ListBox o ComboBox.
Valores

La numeración de fila y de columna empieza en cero. El número de fila de la primera fila de la lista es cero y el número de columna de la primera columna es cero. El número de la segunda fila o columna es 1, y así sucesivamente.

Comentarios

La propiedad List funciona con las propiedades ListCount y ListIndex. Utilice la propiedad List para tener acceso a elementos de la lista. Una lista es una matriz variable; cada elemento de la lista tiene un número de fila y de columna.

Inicialmente, los controles ComboBox y ListBox contienen una lista vacía.

Nota  Para especificar los elementos que desea mostrar en un control ComboBox o ListBox, utilice el método AddItem. Para quitar elementos, utilice el método RemoveItem.

Utilice la propiedad List para copiar una matriz bidimensional completa de valores a un control. Utilice el método AddItem para cargar una matriz unidimensional o para cargar un elemento individual.


ListCount (Propiedad)

Devuelve el número de entradas de lista de un control.

Sintaxis

objeto.ListCount

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad ListCount es de sólo lectura. La propiedad ListCount contiene el número de filas sobre el cual se puede desplazar. La propiedad ListRows contiene el número máximo que puede mostrar de una vez. La propiedad ListCount siempre es superior en uno al mayor valor de la propiedad ListIndex, ya que los números de índice empiezan en 0 y el número de elementos empieza en 1. Si no se seleccionan elementos, la propiedad ListCount es 0 y ListIndex es –1.


ListIndex (Propiedad)

Identifica el elemento seleccionado actualmente en un control ListBox o ComboBox.

Sintaxis

objeto.ListIndex [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. El elemento seleccionado actualmente en el control.
Comentarios

La propiedad ListIndex contiene un índice de la fila seleccionada en una lista. El intervalo de valores de la propiedad ListIndex es desde –1 a uno menos que el número total de filas de una lista (es decir, ListCount – 1). Cuando no se seleccionan filas, ListIndex devuelve –1. Cuando el usuario selecciona una fila en un control ListBox o ComboBox, el sistema establece el valor de la propiedad ListIndex. El valor de la propiedad ListIndex para la primera fila de una lista es 0, el valor para la segunda fila es 1, y así sucesivamente.

Nota  Si utiliza la propiedad MultiSelect para crear un control ListBox que permita selecciones múltiples, la propiedad Selected del control ListBox (en lugar de la propiedad ListIndex) identifica las filas seleccionadas. La propiedad Selected es una matriz con el mismo número de valores que número de filas tiene el control ListBox. Para cada fila del cuadro de lista, la propiedad Selected es True si la fila está seleccionada y False si no lo está. En un control ListBox que permite selecciones múltiples, la propiedad ListIndex devuelve el índice de la fila que tiene el enfoque, sin tener en cuenta si esa fila está seleccionada actualmente o no.

El valor de la propiedad ListIndex también está disponible si el valor de la propiedad BoundColumn es 0 para un cuadro combinado o un cuadro de lista. Si la propiedad BoundColumn es 0, el origen de datos subyacente es dependiente del cuadro combinado o del cuadro de lista que contiene el mismo valor de índice de lista que la propiedad ListIndex.


ListRows (Propiedad)

Especifica el número máximo de filas que se muestran en la lista.

Sintaxis

objeto.ListRows [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un número entero que indica el número máximo de filas. El valor predeterminado es 8.
Comentarios

Si el número de elementos en la lista supera el valor de la propiedad ListRows, se muestra una barra de desplazamiento en el borde derecho de la parte de cuadro de lista del cuadro combinado.


ListStyle (Propiedad)

Especifica la apariencia visual de la lista en un control ListBox o ComboBox.

Sintaxis

objeto.ListStyle [= fmListStyle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmListStyle	Opcional. El estilo visual de la lista.
Valores

Los valores para fmListStyle son:

Constante	Valor	Descripción
fmListStylePlain	0	Se muestra como un cuadro de lista normal, con el fondo de los elementos resaltado.
fmListStyleOption	1	Muestra botones de opción o casillas de verificación para una lista de selección múltiple (predeterminado). Cuando el usuario selecciona un elemento de un grupo, el botón de opción asociado con ese elemento se selecciona y anula la selección de los botones de opción de los otros elementos del grupo.
Comentarios

La propiedad ListStyle le permite cambiar la presentación visual de un control ListBox o ComboBox. Especificar un valor distinto de fmListStylePlain puede presentar el contenido de cada control como un grupo de elementos individuales, incluyendo en cada elemento una pista visual para indicar si está seleccionado.

Si el control permite una única selección (la propiedad MultiSelect está establecida como fmMultiSelectSingle), el usuario puede presionar un botón del grupo. Si el control permite la selección múltiple, el usuario puede presionar dos o más botones del grupo.


ListWidth (Propiedad)

Especifica el ancho de la lista en un control ComboBox.

Sintaxis

objeto.ListWidth [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. El ancho de la lista. Un valor cero hace la lista tan ancha como el control ComboBox. El valor predeterminado es hacer la lista tan ancha como la parte de texto del control.
Comentarios

Si desea mostrar una lista de múltiples columnas, introduzca un valor que haga que el cuadro de lista sea suficientemente ancho como para que puedan caber todas las columnas.

Sugerencia  Cuando diseñe cuadros combinado, asegúrese de dejar suficiente espacio para mostrar sus datos y para la barra de desplazamiento vertical.


Locked (Propiedad)

Especifica si se puede editar un control.

Sintaxis

objeto.Locked [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si se puede editar el control.
Valores

Los valores para Boolean son:

Valor	Descripción
True	No puede editar el valor.
False	Puede editar el valor (predeterminado).
Comentarios

Cuando un control está bloqueado y habilitado, aún puede iniciar eventos y recibir el enfoque.


MatchEntry (Propiedad)

Devuelve o establece un valor que indica cómo busca sus listas un control ListBox o ComboBox cuando el usuario escribe.

Sintaxis

objeto.MatchEntry [= fmMatchEntry]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmMatchEntry	Opcional. La regla utilizada para hacer coincidir las entradas en la lista.
Valores

Los valores para fmMatchEntry son:

Constante	Valor	Descripción
fmMatchEntryFirstLetter	0	Coincidencia básica. El control busca la siguiente entrada que empiece con el carácter introducido. Escribir repetidamente la misma letra hace un ciclo entre todas las entradas que empiezan con esa letra.
fmMatchEntryComplete	1	Coincidencia extendida. Según se escribe cada carácter, el control busca una entrada que coincida con todos los caracteres introducidos (predeterminado).
fmMatchEntryNone	2	Sin coincidencia.
Comentarios

La propiedad MatchEntry busca entradas de la propiedad TextColumn de un control ListBox o ComboBox.

El control busca en la columna identificada por la propiedad TextColumn una entrada que coincida con la entrada escrita por el usuario. Cuando se encuentra una coincidencia, se selecciona la fila que contiene la coincidencia, se muestra el contenido de la columna y el contenido de la propiedad BoundColumn pasa a ser el valor del control. Si la coincidencia no es ambigua, encontrar la coincidencia inicia el evento Click.

El control inicia el evento Click tan pronto como el usuario escribe una secuencia de caracteres que coincidan exactamente con una entrada de la lista. A medida que escribe el usuario, la entrada se compara con la fila actual y con la fila siguiente de la lista. Cuando la entrada coincide solamente con la fila actual, la coincidencia no es ambigua.

En Microsoft Forms, no se tiene en cuenta que la lista está ordenada. Esto significa que el control encuentra la primera ocurrencia que coincida con la entrada, basándose en el orden de los elementos de la lista. Por ejemplo, introducir "abc" o "bc" iniciará el evento Click para la siguiente lista:

abcde

bcdef

abcxyz

bchij

Observe que en cualquier caso, la entrada coincidente no es única; sin embargo, es suficientemente diferente de la entrada adyacente como para que el control interprete que la coincidencia no es ambigua e inicie el evento Click.


MatchFound (Propiedad)

Indica si el texto que el usuario ha escrito en un cuadro combinado coincide con cualquier entrada de la lista.

Sintaxis

objeto.MatchFound

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Valores devueltos

Los valores devueltos por la propiedad MatchFound son:

Valor	Descripción
True	El contenido de la propiedad Value coincide con un registro de la lista.
False	El contenido de la propiedad Value no coincide con ningún registro de la lista (predeterminado).
Comentarios

La propiedad MatchFound es de sólo lectura. No es aplicable cuando la propiedad MatchEntry se establece a fmMatchEntryNone.


MatchRequired (Propiedad)

Especifica si un valor introducido en la parte de texto de un control ComboBox debe coincidir con una entrada de la parte de lista existente del control. El usuario puede introducir valores no coincidentes, pero no puede abandonar el control hasta que se introduzca un valor coincidente.

Sintaxis

objeto.MatchRequired [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el texto introducido debe coincidir con un elemento existente de la lista.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El texto introducido debe coincidir con una entrada existente de la lista.
False	El texto introducido puede ser diferente a una entrada existente de la lista (predeterminado).
Comentarios

Si la propiedad MatchRequired es True, el usuario no puede salir de un control ComboBox hasta que el texto introducido coincida con una entrada existente de la lista. La propiedad MatchRequired mantiene la integridad de la lista exigiendo que el usuario seleccione una entrada existente.

Nota  No todos los contenedores hacen cumplir esta propiedad.


Max, Min (Propiedades)

Especifica los valores máximos y mínimos aceptables para la propiedad Value de un control ScrollBar o SpinButton.

Sintaxis

objeto.Max [= Long]

objeto.Min [= Long]

La sintaxis de las propiedades Max y Min consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Una expresión numérica que especifica el valor máximo o mínimo de la propiedad Value.
Comentarios

Hacer clic en un control SpinButton o mover el cuadro de desplazamiento en un control ScrollBar cambia la propiedad Value del control.

El valor de la propiedad Max corresponde a la posición inferior de un control ScrollBar vertical o a la posición más a la derecha de un control ScrollBar horizontal. El valor para la propiedad Min corresponde a la posición más alta de un control ScrollBar vertical o a la posición más a la izquierda de un control ScrollBar horizontal.

Cualquier número entero es un valor aceptable para esta propiedad. El intervalo de valores recomendados es desde –32767 a +32767. El valor predeterminado es 1.

Nota  En un control ScrollBar, las propiedades Min y Max se refieren a ubicaciones, no a valores relativos. Es decir, el valor de la propiedad Max podría ser menor que el valor de la propiedad Min. Si éste es el caso, el movimiento hacia la posición Max (inferior) disminuye la propiedad Value; el movimiento hacia la posición Min (arriba) aumenta la propiedad Value.


MaxLength (Propiedad)

Especifica el número máximo de caracteres que un usuario puede introducir en un control TextBox o ComboBox.

Sintaxis

objeto.MaxLength [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un número entero que indica el número de caracteres permitido.
Comentarios

Establecer la propiedad MaxLength a 0 indica que no hay otro límite que el creado por las restricciones de memoria.


MouseIcon (Propiedad)

Asigna un icono personalizado a un objeto.

Sintaxis

objeto.MouseIcon = LoadPicture( ruta)

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Ruta	Requerido. Una expresión de cadena que especifica la ruta y el nombre del archivo que contiene el icono personalizado.
Comentarios

La propiedad MouseIcon es válida cuando la propiedad MousePointer se establece a 99. El icono del mouse de un objeto es la imagen que se muestra cuando el usuario mueve el mouse a través de ese objeto.

Para asignar una imagen al puntero del mouse, puede asignar una imagen a la propiedad MouseIcon o cargar una imagen desde un archivo utilizando la función LoadPicture.


MousePointer (Propiedad)

Especifica el tipo de puntero del mouse mostrado cuando el usuario sitúa el mouse sobre un objeto en particular.

Sintaxis

objeto.MousePointer [= fmMousePointer]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmMousePointer	Opcional. La forma que desea para el puntero del mouse.
Valores

Los valores para fmMousePointer son:

Constante	Valor	Descripción
fmMousePointerDefault	0	Puntero estándar. La imagen está determinada por el objeto (predeterminado).
fmMousePointerArrow	1	Flecha.
fmMousePointerCross	2	Puntero en forma de cruz.
fmMousePointerIBeam	3	Puntero en forma de I.
fmMousePointerSizeNESW	6	Flecha doble que señala al noreste y al suroeste.
fmMousePointerSizeNS	7	Flecha doble que señala al norte y al sur.
fmMousePointerSizeNWSE	8	Flecha doble que señala al noroeste y al sureste.
fmMousePointerSizeWE	9	Flecha doble que señala al oeste y al este.
fmMousePointerUpArrow	10	Flecha arriba.
fmMousePointerHourglass	11	Reloj de arena.
fmMousePointerNoDrop	12	Símbolo "No" (un círculo con una línea diagonal) encima del objeto que se está arrastrando. Indica un destino de colocación no válido.
fmMousePointerAppStarting	13	Flecha con un reloj de arena.
fmMousePointerHelp	14	Flecha con una interrogación.
fmMousePointerSizeAll	15	Flecha que señala al norte, al sur, al este y al oeste.
fmMousePointerCustom	99	Utiliza el icono especificado por la propiedad MouseIcon.
Comentarios

Utilice la propiedad MousePointer cuando desee indicar cambios en la funcionalidad según se mueve el puntero del mouse sobre los controles de un formulario. Por ejemplo, el valor de reloj de arena (11) es útil para indicar que el usuario debe esperar hasta que una operación o proceso finalicen.

Algunos iconos varían dependiendo de los valores del sistema, como los iconos relacionados con los temas de escritorio.


MultiLine (Propiedad)

Especifica si un control puede aceptar y mostrar múltiples líneas de texto.

Sintaxis

objeto.MultiLine [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si un control permite más de una línea de texto.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El texto se muestra a través de múltiples líneas (predeterminado).
False	El texto no se muestra a través de múltiples líneas.
Comentarios

Un control TextBox de múltiples líneas permite saltos de línea absolutos y ajusta su cantidad de líneas para dar cabida a la cantidad de texto que puede contener. Si es necesario, un control de múltiples líneas puede tener barras de desplazamiento verticales.

Un control TextBox de una única línea no permite saltos de línea absolutos y no utiliza barras de desplazamiento verticales.

Los controles de una única línea pasan por alto el valor de la propiedad WordWrap.

Nota   Si cambia la propiedad MultiLine a False en un control TextBox de múltiples líneas, todos los caracteres del control TextBox se combinarán en un línea. Los caracteres no imprimibles se mostrarán entre líneas de texto.


MultiRow (Propiedad)

Especifica si el control tiene más de una fila de fichas.

Sintaxis

objeto.MultiRow [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el control tiene más de una fila de fichas.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Permite más de una fila de fichas.
False	Limita las ficha a una única fila (predeterminado).
Comentarios

El ancho y el número de fichas determinan el número de filas. Cambiar el tamaño del control también cambia el número de filas. Esto permite al programador cambiar el tamaño del control y asegurarse que las fichas caben en el control. Si la propiedad MultiRow es False, se produce un truncamiento si el ancho de las fichas supera el ancho del control.

Si la propiedad MultiRow es False y las fichas están truncadas, habrá una pequeña barra de desplazamiento en el control TabStrip para permitir el desplazamiento a otras fichas o páginas.


MultiSelect (Propiedad)

Indica si el objeto permite selecciones múltiples.

Sintaxis

objeto.MultiSelect [= fmMultiSelect]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmMultiSelect	Opcional. El modo de selección que utiliza el control.
Valores

Los valores para fmMultiSelect son:

Constante	Valor	Descripción
fmMultiSelectSingle	0	Solamente se puede seleccionar un elemento (predeterminado).
fmMultiSelectMulti	1	Presionar BARRA ESPACIADORA o hacer clic selecciona o anula la selección de un elemento de la lista.
fmMultiSelectExtended	2	Presionar MAYÚSCULAS y hacer clic con el mouse o presionar MAYÚSCULAS y una de la flechas de dirección extiende la selección desde el elemento seleccionado anteriormente hasta el elemento actual. Presionar CTRL y hacer clic con el mouse selecciona o anula la selección de un elemento.
Comentarios

Cuando la propiedad MultiSelect se establece a Extended o Single, debe utilizar la propiedad Selected del cuadro de lista para determinar los elementos seleccionados. También, la propiedad Value del control es siempre Null.

La propiedad ListIndex devuelve el índice de la fila que tiene el enfoque del teclado.


Name (Propiedad)

Especifica el nombre de un control u objeto, o el nombre de una fuente asociada al objeto Font.

Sintaxis

Para el objeto Font
Font.Name [= String]

Para todos los demás controles y objetos
objeto.Name [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. El nombre que desea asignar a la fuente o al control.
Valores

Las instrucciones para asignar una cadena a una propiedad Name, como la longitud máxima del nombre, varían de una aplicación a otra.

Comentarios

Para los objetos, el valor predeterminado de la propiedad Name se compone del nombre de clase del objeto seguido de un número entero. Por ejemplo, el nombre predeterminado para el primer control TextBox que coloca en un formulario es TextBox1. El nombre predeterminado para el segundo control TextBox es TextBox2.

Puede establecer la propiedad Name para un control desde la hoja de propiedades del control o, para los controles agregados en tiempo de ejecución, utilizando instrucciones de programa. Si agrega un control en tiempo de diseño, no puede modificar su propiedad Name en tiempo de ejecución.

Cada control agregado a un formulario en tiempo de diseño debe tener un nombre único.

Para los objetos Font, la propiedad Name identifica un tipo de letra particular que se va a utilizar en la parte de texto de un control, objeto o formulario. La apariencia de la fuente en la pantalla y en la impresora puede ser diferente, dependiendo de su equipo e impresora. Si selecciona una fuente que su sistema no puede mostrar o no está instalada, Windows la sustituye por una fuente parecida.


Object (Propiedad)

Sobrescribe el método o la propiedad estándar cuando un control nuevo tiene una propiedad o método con el mismo nombre.

Sintaxis

objeto.Object[.propiedad |.método]

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

Parte	Descripción
objeto	Requerido. El nombre de un objeto que ha agregado al Cuadro de herramientas de Microsoft Forms.
propiedad	Opcional. Una propiedad que tiene el mismo nombre que la propiedad de Microsoft Forms estándar.
método	Opcional. Un método que tiene el mismo nombre que el método de Microsoft Forms estándar.
Comentarios

Object es de sólo lectura.

Si agrega un control nuevo al Cuadro de herramientas de Microsoft Forms, es posible que el control agregado tendrá una propiedad o un método con el mismo nombre que una propiedad o un método de Microsoft Forms estándar. la propiedad Object le permite utilizar la propiedad o el método del control agregado, en vez de la propiedad o método estándar.


OldHeight, OldWidth (Propiedades)

Especifica el alto o el ancho anterior, en puntos del control.

Sintaxis

objeto.OldHeight [ =Single]

objeto.OldWidth [ =Single]

La sintaxis de las propiedades OldHeight y OldWidth consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. Devuelve el alto o el ancho anterior.
Comentarios

OldHeight y OldWidth son de sólo lectura.

Las propiedades OldHeight y OldWidth se actualizan automáticamente cuando mueve o ajusta el tamaño de un control. Si cambia el tamaño de un control, las propiedades Height y Width almacenan el alto o el ancho nuevos, y OldHeight y OldWidth almacenan el alto o el ancho anteriores.

Estas propiedades sólo son válidas en el evento Layout.


OldLeft, OldTop (Propiedades)

Indica la distancia, en puntos, entre la posición anterior de un control y el borde superior o izquierdo del formulario que lo contiene.

Sintaxis

objeto.OldLeft

objeto.OldTop

La sintaxis de las propiedades OldLeft y OldTop consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. Devuelve la coordenada izquierda o superior anterior.
Comentarios

OldLeft y OldTop son de sólo lectura.

Las propiedades OldLeft y OldTop se actualizan automáticamente cuando mueve o ajusta el tamaño de un control. Si mueve un control, las propiedades Left y Top almacenan la nueva distancia desde el control al borde izquierdo de su contenedor, y OldLeft y OldTop almacenan el valor anterior de Left.

Las propiedades OldLeft y OldTop sólo son válidas en el evento Layout.


Orientation (Propiedad)

Especifica si el control SpinButton o ScrollBar tiene una orientación vertical u horizontal.

Sintaxis

objeto.Orientation [= fmOrientation]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmOrientation	Opcional. Orientación del control.
Valores

Los valores para fmOrientation son:

Constante	Valor	Descripción
fmOrientationAuto	–1	Determina automáticamente la orientación basándose en las dimensiones del control (predeterminado).
fmOrientationVertical	0	El control se representa verticalmente.
fmOrientationHorizontal	1	El control se representa horizontalmente.
Comentarios

Si especifica la orientación automática, el alto y el ancho del control determinan si éste se muestra horizontalmente o verticalmente. Por ejemplo, si el control es más ancho que alto, se muestra horizontalmente; si es más alto que ancho, el control se muestra verticalmente.


Parent (Propiedad)

Devuelve el nombre del formulario, objeto o colección primaria que contiene un control, objeto o colección específicos.

Sintaxis

objeto.Parent

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad Parent es de sólo lectura.

Utilice la propiedad Parent para tener acceso a las propiedades, métodos o controles del principal del objeto.

Esta propiedad es útil en una aplicación en la que transfiera objetos como argumentos. Por ejemplo, podría transferir una variable de control a un procedimiento general en un módulo y utilizar la propiedad Parent para tener acceso a su formulario principal.


PasswordChar (Propiedad)

Especifica si se muestran los caracteres marcadores de posición en lugar de los caracteres introducidos en un control TextBox.

Sintaxis

objeto.PasswordChar [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Una expresión de cadena que especifica el carácter marcador de posición.
Comentarios

Puede utilizar la propiedad PasswordChar para proteger información confidencial, como contraseñas o códigos de seguridad. El valor de la propiedad PasswordChar es el carácter que se muestra en un control en lugar de los caracteres que el usuario escribe. Si no desea especificar ningún carácter, el control muestra los caracteres que escribe el usuario.


Picture (Propiedad)

Especifica el mapa de bits que se muestra en un objeto.

Sintaxis

objeto.Picture = LoadPicture( ruta )

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Ruta	Requerido. La ruta completa del archivo de imagen.
Comentarios

Cuando diseña un formulario, puede utilizar la página de propiedades del control para asignar un mapa de bits a la propiedad Picture. Mientras ejecuta un formulario, debe utilizar la función LoadPicture para asignar un mapa de bits a la propiedad Picture.

Para quitar una imagen que está asignada a un control, haga clic en el valor de la propiedad Picture en la página de propiedades y presione SUPR. Presionar RETROCESO no quitará la imagen.

Nota  Para los controles con títulos, utilice la propiedad PicturePosition para especificar dónde se muestra la imagen en el objeto. Utilice la propiedad PictureSizeMode para determinar cómo la imagen llena el objeto.

Las imágenes transparentes a veces tiene una apariencia borrosa. Si no le gusta esta apariencia, muestre la imagen en un display control que permita imágenes opacas. Los controles Image y MultiPage admiten imágenes opacas.


PictureAlignment (Propiedad)

Especifica la ubicación de una imagen de fondo.

Sintaxis

objeto.PictureAlignment [= fmPictureAlignment]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmPictureAlignment	Opcional. La posición donde la imagen se alinea con el control.
Valores

Los valores para fmPictureAlignment son:

Constante	Valor	Descripción
fmPictureAlignmentTopLeft	0	La esquina superior izquierda.
fmPictureAlignmentTopRight	1	La esquina superior derecha.
fmPictureAlignmentCenter	2	El centro.
fmPictureAlignmentBottomLeft	3	La esquina inferior izquierda.
fmPictureAlignmentBottomRight	4	La esquina inferior derecha.
Comentarios

La propiedad PictureAlignment identifica qué esquina de la imagen es la misma que la esquina correspondiente del control o contenedor donde se utiliza la imagen.

Por ejemplo, establecer la propiedad PictureAlignment a fmPictureAlignmentTopLeft quiere decir que la esquina superior izquierda de la imagen coincide con la esquina superior izquierda del control o contenedor. Establecer PictureAlignment a fmPictureAlignmentCenter coloca la imagen en el centro, en relación tanto al alto como al ancho del control o contenedor.

Si organiza en mosaico una imagen en un control o contenedor, el valor de la propiedad PictureAlignment afecta al modelo de mosaico. Por ejemplo, si la propiedad PictureAlignment se establece a fmPictureAlignmentUpperLeft, la primera copia de la imagen se coloca en la esquina superior izquierda del control o contenedor y las copias adicionales se organizan en mosaico desde la izquierda a la derecha a lo ancho de cada fila. Si la propiedad PictureAlignment es fmPictureAlignmentCenter, la primera copia de la imagen se coloca en el centro del control o contenedor, y las copias adicionales se colocan de izquierda a derecha para completar la fila y se agregan filas adicionales para llenar el control o contenedor.

Nota  Establecer la propiedad PictureSizeMode a fmSizeModeStretch pasa por alto la propiedad PictureAlignment. Cuando la propiedad PictureSizeMode se establece a fmSizeModeStretch, la imagen llena por completo el control o contenedor.


PicturePosition (Propiedad)

Especifica la ubicación de la imagen en relación a su título.

Sintaxis

objeto.PicturePosition [= fmPicturePosition]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmPicturePosition	Opcional. Cómo se alinea la imagen con su contenedor.
Valores

Los valores para fmPicturePosition son:

Constante	Valor	Descripción
fmPicturePositionLeftTop	0	La imagen se muestra a la izquierda del título. El título se alinea con la parte superior de la imagen.
fmPicturePositionLeftCenter	1	La imagen se muestra a la izquierda del título. El título se centra con relación a la imagen.
fmPicturePositionLeftBottom	2	La imagen se muestra a la izquierda del título. El título se alinea con la parte inferior de la imagen.
fmPicturePositionRightTop	3	La imagen se muestra a la derecha del título. El título se alinea con la parte superior de la imagen.
fmPicturePositionRightCenter	4	La imagen se muestra a la derecha del título. El título se centra con relación a la imagen.
fmPicturePositionRightBottom	5	La imagen se muestra a la derecha del título. El título se alinea con la parte inferior de la imagen.
fmPicturePositionAboveLeft	6	La imagen se muestra sobre el título. El título se alinea con el borde izquierdo de la imagen.
fmPicturePositionAboveCenter	7	La imagen se muestra sobre el título. El título se centra debajo de la imagen (predeterminado).
fmPicturePositionAboveRight	8	La imagen se muestra sobre el título. El título se alinea con el borde derecho de la imagen.
fmPicturePositionBelowLeft	9	La imagen se muestra debajo del título. El título se alinea con el borde izquierdo de la imagen.
fmPicturePositionBelowCenter	10	La imagen se muestra debajo del título. El título se centra debajo de la imagen.
fmPicturePositionBelowRight	11	La imagen se muestra debajo del título. El título se alinea con el borde derecho de la imagen.
fmPicturePositionCenter	12	La imagen se muestra en el centro del control. El título se centra horizontal y verticalmente en la parte superior de la imagen.
Comentarios

La imagen y el título, como una unidad, se centran en el control. Si no existe un título, la ubicación de la imagen es relativa al centro del control.

Esta propiedad es irrelevante si la propiedad Picture no especifica ninguna imagen.


PictureSizeMode (Propiedad)

Especifica cómo se muestra una imagen de fondo en un control, formulario o página.

Sintaxis

objeto.PictureSizeMode [= fmPictureSizeMode]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmPictureSizeMode	Opcional. La acción que se va a ejecutar si la imagen y el formulario o página que lo contienen no son del mismo tamaño.
Valores

Los valores para fmPictureSizeMode son:

Constante	Valor	Descripción
fmPictureSizeModeClip	0	Recorta cualquier parte de la imagen que es más grande que el formulario o página (predeterminado).
fmPictureSizeModeStretch	1	Estira la imagen para llenar el formulario o la página. Este valor deforma la imagen tanto en dirección horizontal como vertical.
fmPictureSizeModeZoom	3	Amplía la imagen, pero no la deforma en dirección horizontal ni en vertical.
Comentarios

El valor de fmPictureSizeModeClip indica que desea mostrar la imagen con su tamaño y escala originales. Si el formulario o página son de menor tamaño que la imagen, este valor solamente muestra la parte de la imagen que cabe en el formulario o la página.

Los valores fmPictureSizeModeStretch y fmPictureSizeModeZoom amplían la imagen, pero fmPictureSizeModeStretch causa una distorsión. El valor fmPictureSizeModeStretch amplía la imagen horizontal y verticalmente hasta que alcanza los bordes correspondientes del contenedor o el control. El valor fmPictureSizeModeZoom amplía la imagen hasta que alcanza los bordes horizontales o verticales del contenedor o el control. Si la imagen alcanza primero los bordes horizontales, la distancia restante al los bordes verticales permanece en blanco. Si alcanza primero los bordes verticales, cualquier distancia restante a los bordes horizontales permanece en blanco.


PictureTiling (Propiedad)

Permite organizar en mosaico una imagen en un formulario o una página.

Sintaxis

objeto.PictureTiling [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si la imagen se repite a través de un fondo.
Valores

Los valores para Boolean son:

Valor	Descripción
True	La imagen se organiza en mosaico a través del fondo.
False	La imagen no se organiza en mosaico a través del fondo (predeterminado).
Comentarios

Si la imagen es de menor tamaño que el formulario o la página que lo contiene, puede organizar en mosaico la imagen en el formulario o página.

El modelo de organización en mosaico depende de la configuración actual de las propiedades PictureAlignment y PictureSizeMode. Por ejemplo, si la propiedad PictureAlignment se establece a fmPictureAlignmentTopLeft, el modelo de organización en mosaico se inicia arriba a la izquierda y repite el dibujo a través del formulario o la página, y baja por el alto del formulario o la página. Si la propiedad PictureSizeMode se establece a fmPictureSizeModeClip, el modelo de organización en mosaico recorta el último mosaico si no cabe completamente en el formulario o en la página.


ProportionalThumb (Propiedad)

Especifica si el tamaño del cuadro de desplazamiento es proporcional al área de desplazamiento o fijo.

Sintaxis

objeto.ProportionalThumb [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el cuadro de desplazamiento es proporcional o fijo.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El cuadro de desplazamiento es proporcional en tamaño al área de desplazamiento (predeterminado).
False	El cuadro de desplazamiento es de tamaño fijo.
Comentarios

El tamaño de un cuadro de desplazamiento proporcional representa gráficamente el porcentaje del objeto que es visible en la ventana. Por ejemplo, si es visible el 75 por ciento un objeto, el cuadro de desplazamiento cubrirá tres cuartas partes del área de desplazamiento en la barra de desplazamiento.

Si el cuadro de desplazamiento es de tamaño fijo, el sistema determina su tamaño basándose en el alto y el ancho de la barra de desplazamiento.


RowSource (Propiedad)

Especifica el origen que proporciona una lista para un control ComboBox o ListBox.

Sintaxis

objeto.RowSource [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. El origen de la lista para el control ComboBox o ListBox.
Comentarios

La propiedad RowSource acepta rangos de hoja de cálculo de Microsoft Excel.


ScrollBars (Propiedad)

Especifica si un control, formulario o página tiene barras de desplazamiento verticales, horizontales o ambas.

Sintaxis

objeto.ScrollBars [= fmScrollBars]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmScrollBars	Opcional. Dónde se deben mostrar las barras de desplazamiento.
Valores

Los valores para fmScrollBars son:

Constante	Valor	Descripción
fmScrollBarsNone	0	No muestra barras de desplazamiento (predeterminado).
fmScrollBarsHorizontal	1	Muestra una barra de desplazamiento horizontal.
fmScrollBarsVertical	2	Muestra una barra de desplazamiento vertical.
fmScrollBarsBoth	3	Muestra ambas barras de desplazamiento, una horizontal y otra vertical.
Comentarios

Si la propiedad KeepScrollBarsVisible es True, cualquier barra de desplazamiento en un formulario o una página está visible siempre, sin tener en cuenta si el contenido del objeto cabe o no dentro de los bordes del objeto.

Si es visible, una barra de desplazamiento restringe a su cuadro de desplazamiento al área visible de la barra de desplazamiento. También modifica la posición de desplazamiento si se necesita para mantener visible la barra de desplazamiento completa. El intervalo de una barra de desplazamiento cambia cuando cambia el valor de la propiedad ScrollBars, cambia el tamaño de desplazamiento o cambia el tamaño visible.

Si una barra de desplazamiento no es visible, puede establecer su posición de desplazamiento a cualquier valor. Son válidos los valores negativos y los valores mayores que el tamaño de desplazamiento.

Para un control de una única línea, puede mostrar una barra de desplazamiento horizontal utilizando las propiedades ScrollBars y AutoSize. Las barras de desplazamiento están ocultas o se muestran de acuerdo con las siguientes reglas:

1.	Cuando la propiedad ScrollBars se establece a fmScrollBarsNone, no se muestra ninguna barra de desplazamiento.

2.	Cuando la propiedad ScrollBars se establece a fmScrollBarsHorizontal o fmScrollBarsBoth, el control muestra una barra de desplazamiento horizontal si el texto es más largo que el área de edición y si el control tiene capacidad suficiente para incluir la barra de desplazamiento debajo de su área de edición.

3.	Cuando la propiedad AutoSize es True, el control se amplía para dar cabida a una barra de desplazamiento a menos que el control esté en su tamaño máximo o cerca del mismo.

Para un control TextBox de múltiples líneas, puede mostrar barras de desplazamiento utilizando las propiedades ScrollBars, WordWrap y AutoSize. Las barras de desplazamiento están ocultas o se muestran de acuerdo con las siguientes reglas:

1.	Cuando la propiedad ScrollBars se establece a fmScrollBarsNone, no se muestra ninguna barra de desplazamiento.

2.	Cuando la propiedad ScrollBars se establece a fmScrollBarsHorizontal o fmScrollBarsBoth, el control muestra una barra de desplazamiento vertical si el texto es más largo que el área de edición y si el control tiene capacidad suficiente para incluir la barra de desplazamiento en el borde derecho de su área de edición.

3.	Cuando la propiedad WordWrap es True, el control de múltiples líneas no muestra una barra de desplazamiento horizontal. La mayoría de los controles de múltiples líneas no utilizan una barra de desplazamiento horizontal.

4.	Un control de múltiples líneas puede mostrar una barra de desplazamiento horizontal si se cumplen las siguientes condiciones simultáneamente:

•	El área de edición contiene una palabra que es más larga que el ancho del área de edición.

•	El control tiene habilitadas barras de desplazamiento horizontales.

•	El control tiene capacidad suficiente para incluir la barra de desplazamiento debajo del área de edición.

•	La propiedad WordWrap se establece a False.


ScrollHeight, ScrollWidth (Propiedades)

Especifican el alto, en puntos, del área total que se puede ver moviendo las barras de desplazamiento en el control, formulario o página.

Sintaxis

objeto.ScrollHeight [= Single]

objeto.ScrollWidth [= Single]

La sintaxis de las propiedades ScrollHeight y ScrollWidth consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
single	Opcional. El alto o el ancho de un área desplazable.


ScrollLeft, ScrollTop (Propiedades)

Especifican la distancia, en puntos, del borde izquierdo o superior del formulario visible desde el borde izquierdo o superior del formulario, página o control lógico.

Sintaxis

objeto.ScrollLeft [= Single]

objeto.ScrollTop [= Single]

La sintaxis de las propiedades ScrollLeft y ScrollTop consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. La distancia desde el borde del formulario.
Comentarios

El valor mínimo es cero; el valor máximo es la diferencia entre el valor de la propiedad ScrollWidth y el valor de la propiedad Width para el formulario o la página.


Selected (Propiedad)

Devuelve o establece el estado de selección de los elementos en un control ListBox.

Sintaxis

objeto.Selected( índice ) [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
índice	Requerido. Un número entero entre 0 y uno menos que el número de elementos de la lista.
Boolean	Opcional. Si un elemento está seleccionado.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El elemento está seleccionado.
False	El elemento no está seleccionado.
Comentarios

La propiedad Selected es útil cuando el usuario puede hacer selecciones múltiples. Puede utilizar esta propiedad para determinar las filas seleccionadas en un cuadro de lista de selección múltiple. También puede utilizar esta propiedad para seleccionar o anular la selección de filas de una lista desde código.

El valor predeterminado de esta propiedad está basado en el estado de selección actual del control ListBox.

Para cuadros de lista de selección única, se recomiendan las propiedades Value o ListIndex para obtener y establecer la selección. En este caso, la propiedad ListIndex devuelve el índice del elemento seleccionado. Sin embargo, en una selección múltiple, la propiedad ListIndex devuelve el índice de la fila que está dentro del rectángulo de enfoque, esté o no seleccionada la fila actualmente.

Cuando la propiedad MultiSelect de un control de un cuadro de lista se establece a Ninguno, solamente una fila puede tener establecida a True su propiedad Selected.

Introducir un valor que esté fuera del intervalo para el índice no genera un mensaje de error, pero no establece una propiedad para ningún elemento de la lista.


SelectedItem (Propiedad)

Devuelve el objeto Tab o Page seleccionado actualmente.

Sintaxis

objeto.SelectedItem

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

Parte	Descripción
objeto	Requerido. Un control TabStrip o MultiPage válido.
Comentarios

La propiedad SelectedItem es de sólo lectura. Utilice SelectedItem para controlar mediante programa el objeto Tab o Page seleccionado actualmente. Por ejemplo, puede utilizar la propiedad SelectedItem para asignar valores a las propiedades de un objeto Tab o Page.


SelectionMargin (Propiedad)

Especifica si el usuario puede seleccionar una línea de texto haciendo clic en el área que hay a la izquierda del texto.

Sintaxis

objeto.SelectionMargin [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si haciendo clic en el margen se selecciona una línea de texto.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Haciendo clic en el margen se origina una selección de texto (predeterminado).
False	Haciendo clic en el margen no se origina una selección de texto.
Comentarios

Cuando la propiedad SelectionMargin es True, el margen de selección ocupa una banda estrecha a lo largo del borde izquierdo del área de edición del control. Cuando se establece a False, el área de edición completa puede almacenar texto.

Si la propiedad SelectionMargin se establece a True cuando un control se imprime, el margen de selección también se imprime.


SelLength (Propiedad)

El número de caracteres seleccionados en un cuadro de texto o en la parte de texto de un cuadro combinado.

Sintaxis

objeto.SelLength [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Una expresión numérica que especifica el número de caracteres seleccionados. Para SelLength y SelStart, el intervalo de valores válido es de 0 al número total de caracteres del área de edición de un control ComboBox o TextBox.
Comentarios

La propiedad SelLength siempre es válida, incluso cuando los controles no tienen el enfoque. Establecer la propiedad SelLength a valores menores que cero crea un error. Intentar establecer la propiedad SelLength a un valor mayor que el número caracteres disponibles en un control da como resultado un valor igual al número de caracteres en el control.

Nota  Cambiar el valor de la propiedad SelStart cancela cualquier selección existente en el control, coloca un punto de inserción en el texto y establece la propiedad SelLength a cero.

El valor predeterminado, cero, significa que no hay texto seleccionado actualmente.


SelStart (Propiedad)

Indica el punto de inicio del texto seleccionado o el punto de inserción si no hay texto seleccionado.

Sintaxis

objeto.SelStart [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Una expresión numérica que especifica el punto de inicio del texto seleccionado. Para las propiedades SelLength y SelStart, el intervalo de valores válidos es de 0 al número total de caracteres del área de edición de un control ComboBox o TextBox. El valor predeterminado es cero.
Comentarios

La propiedad SelStart siempre es válida, incluso aunque el control no tenga el enfoque. Establecer la propiedad SelStart a un valor menor que cero crea un error. Intentar establecer la propiedad SelStart a un valor mayor que el número caracteres disponibles en un control da como resultado un valor igual al número de caracteres en el control.

Cambiar el valor de la propiedad SelStart cancela cualquier selección existente en el control, coloca un punto de inserción en el texto y establece la propiedad SelLength a cero.


SelText (Propiedad)

Devuelve o establece el texto seleccionado de un control.

Sintaxis

objeto.SelText [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Una expresión de cadena que contiene el texto seleccionado.
Comentarios

Si no se selecciona ningún carácter en el área de edición del control, la propiedad SelText devuelve una cadena de longitud cero. Esta propiedad es válida independientemente de si el control tiene o no el enfoque.


ShowDropButtonWhen (Propiedad)

Especifica cuándo mostrar el botón de desplegar de un control ComboBox o TextBox.

Sintaxis

objeto.ShowDropButtonWhen [= fmShowDropButtonWhen]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmShowDropButtonWhen	Opcional. Las circunstancias bajo las cuales será visible el botón de desplegar.
Valores

Los valores para fmShowDropButtonWhen son:

Constante	Valor	Descripción
fmShowDropButtonWhenNever	0	No muestra el botón de desplegar bajo ninguna circunstancia.
FmShowDropButtonWhenFocus	1	Muestra el botón de desplegar cuando el control tiene el enfoque.
FmShowDropButtonWhenAlways	2	Siempre muestra el botón de desplegar (predeterminado).
Para un ComboBox, el valor predeterminado es fmShowDropButtonWhenAlways; para un TextBox, el valor predeterminado es fmShowDropButtonWhenNever.


SmallChange (Propiedad)

Especifica la cantidad de movimiento que se produce cuando el usuario hace clic en una flecha de desplazamiento de un control ScrollBar o SpinButton.

Sintaxis

objeto.SmallChange [= Long]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Long	Opcional. Un número entero que especifica la cantidad en que la propiedad Value cambia.
Comentarios

La propiedad SmallChange no tiene unidades.

Cualquier número entero es un valor aceptable para esta propiedad. El intervalo de valores recomendado es desde –32767 a +32767. El valor predeterminado es 1.


SpecialEffect (Propiedad)

Especifica la apariencia visual de un objeto.

Sintaxis

Para los controles CheckBox, OptionButton, ToggleButton
objeto.SpecialEffect [= fmButtonEffect]

Para otros controles
objeto.SpecialEffect [= fmSpecialEffect]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmButtonEffect	Opcional. La apariencia visual deseada para un control CheckBox, OptionButton o ToggleButton.
FmSpecialEffect	Opcional. La apariencia visual deseada de un objeto distinto de CheckBox, OptionButton o ToggleButton.
Valores

Los valores para fmSpecialEffect son:

Constante	Valor	Descripción
fmSpecialEffectFlat	0	El objeto se muestra plano, distinguido del formulario circundante por un borde, un cambio de color o ambos. Es el valor predeterminado para los controles Image y Label, válido para todos los controles.
FmSpecialEffectRaised	1	El objeto está resaltado en la parte superior e izquierda y tiene una sombra en la parte inferior y derecha. No es válido para casillas de verificación ni botones de opción.
FmSpecialEffectSunken	2	El objeto tiene una sombra en la parte superior e izquierda y está resaltado en la parte inferior y derecha. El control y su borde parecen estar cincelados en el formulario que lo contiene. Es el valor predeterminado para los controles CheckBox y OptionButton, es válido para todos los controles (predeterminado).
FmSpecialEffectEtched	3	El borde parece estar cincelado alrededor del límite del control. No es válido para casillas de verificación ni botones de opción.
FmSpecialEffectBump	6	El objeto tiene un relieve en la parte inferior y derecha, y se muestra plano en la parte superior e izquierda. No es válido para casillas de verificación ni botones de opción.
Para un control Frame, el valor predeterminado es Sunken.

Observe que solamente Flat y Sunken (0 y 2) son valores aceptables para controles CheckBox, OptionButton y ToggleButton. Todos los valores enumerados se aceptan en otros controles.

Comentarios

Puede utilizar tanto la propiedad SpecialEffect como BorderStyle para especificar los límites de un control, pero nunca ambas. Si especifica un valor distinto de cero para una de estas propiedades, el sistema establece el valor de la otra propiedad a cero. Por ejemplo, si establece la propiedad SpecialEffect a fmSpecialEffectRaised, el sistema establece BorderStyle a cero (fmBorderStyleNone).

Para un control Frame, la propiedad  BorderStyle es irrelevante si la propiedad SpecialEffect es fmSpecialEffectFlat.

La propiedad SpecialEffect utiliza los colores del sistema para definir sus bordes.

Nota   Aunque la propiedad SpecialEffect existe en el control ToggleButton, la propiedad está deshabilitada. No puede establecer usuario obtener un valor para esta propiedad en el control ToggleButton.


Style (Propiedad)

Para un control ComboBox, especifica cómo el usuario puede elegir o establecer el valor del control. Para controles MultiPage y TabStrip, identifica el estilo de las fichas del control.

Sintaxis

Para un control ComboBox
objeto.Style [= fmStyle]

Para controles MultiPage y TabStrip
objeto.Style [= fmTabStyle]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmStyle	Opcional. Especifica cómo un usuario establece el valor de un control ComboBox.
FmTabStyle	Opcional. Especifica el estilo de ficha en un control MultiPage o TabStrip.
Valores

Los valores para fmStyle son:

Constante	Valor	Descripción
fmStyleDropDownCombo	0	El control ComboBox funciona como un cuadro combinado desplegable. El usuario puede escribir un valor en el área de edición o seleccionar un valor de la lista desplegable (predeterminado).
FmStyleDropDownList	2	El control ComboBox se comporta como un cuadro de lista. El usuario debe elegir un valor de la lista.
Los valores para fmTabStyle son:

Constante	Valor	Descripción
fmTabStyleTabs	0	Muestra las fichas en la barra fichas (predeterminado).
FmTabStyleButtons	1	Muestra botones en la barra de fichas.
FmTabStyleNone	2	No muestra la barra de fichas.


TabFixedHeight, TabFixedWidth (Propiedades)

Establece o devuelve el alto o el ancho fijo de las fichas en puntos.

Sintaxis

objeto.TabFixedHeight [= Single]

objeto.TabFixedWidth [= Single]

La sintaxis de las propiedades TabFixedHeight y TabFixedWidth consta de las siguientes partes:

Parte	Descripción
objeto	Requerido. Un objeto válido.
Single	Opcional. El número de puntos de altura o ancho de las fichas en un control TabStrip o MultiPage.
Valores

Si el valor es 0, el ancho de las fichas se ajusta automáticamente para que cada ficha tenga ancho suficiente para dar cabida a su contenido y cada fila de fichas se extienda a lo ancho del control.

Si el valor es mayor que 0, todas las fichas tienen igual ancho, especificado por esta propiedad.

Comentarios

El tamaño mínimo es de 4 puntos.


TabIndex (Propiedad)

Especifica la ubicación de un único objeto en el orden de tabulación del formulario.

Sintaxis

objeto.TabIndex [= Integer]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Integer	Opcional. Un número entero desde 0 a uno menos que el número de controles del formulario que tienen una propiedad TabIndex. Asignar un valor TabIndex menor que 0 genera un error. Si asigna un valor TabIndex mayor que el valor de índice mayor, el sistema restablece el valor al valor máximo permisible.
Comentarios

El valor de índice para el primer objeto del orden de tabulación es cero.


TabKeyBehavior (Propiedad)

Determina si se permiten tabulaciones en el área de edición.

Sintaxis

objeto.TabKeyBehavior [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. El efecto de presionar la tecla TAB.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Presionar la tecla TAB inserta un carácter de tabulación en el área de edición.
False	Presionar la tecla TAB mueve el enfoque al siguiente objeto del orden de tabulación (predeterminado).
Comentarios

La propiedades TabKeyBehavior y MultiLine están estrechamente relacionados. Los valores descritos anteriormente sólo se aplican si la propiedad MultiLine es True. Si la propiedad MultiLine es False, presionar la tecla TAB siempre mueve el enfoque al siguiente control del orden de tabulación sin tener en cuenta el valor de la propiedad TabKeyBehavior.

El efecto de presionar CTRL+TAB también depende del valor de la propiedad MultiLine. Si la propiedad MultiLine es True, presionar CTRL+TAB crea una nueva línea sin tener en cuenta el valor de la propiedad TabKeyBehavior. Si la propiedad MultiLine es False, presionar CTRL+TAB no tiene ningún efecto.


TabOrientation (Propiedad)

Especifica la ubicación de las fichas en un control MultiPage o TabStrip.

Sintaxis

objeto.TabOrientation [= fmTabOrientation]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmTabOrientation	Opcional. Dónde se muestran las fichas.
Valores

Los valores para fmTabOrientation son:

Constante	Valor	Descripción
fmTabOrientationTop	0	La fichas se muestran en la parte superior del control (predeterminado).
FmTabOrientationBottom	1	La fichas se muestran en la parte inferior del control.
FmTabOrientationLeft	2	La fichas se muestran en la parte izquierda del control.
FmTabOrientationRight	3	La fichas se muestran en la parte derecha del control.
Comentarios

Si utiliza fuentes TrueType, el texto gira cuando la propiedad TabOrientation se establece a fmTabOrientationLeft o fmTabOrientationRight. Si utiliza fuentes de mapas de bits, el texto no gira.


TabStop (Propiedad)

Indica si un objeto puede recibir el enfoque cuando el usuario presiona la tecla TAB para ir al mismo.

Sintaxis

objeto.TabStop [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Determina si el objeto puede recibir el foco al presionar TAB.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Determina si el objeto puede recibir el foco al presionar TAB (predeterminado).
False	Elude el objeto cuando el usuario presiona la tecla TAB, aunque el objeto todavía conserva su posición en el orden de tabulación actual, según se determina en la propiedad TabIndex.


Tag (Propiedad)

Almacena información adicional sobre un objeto.

Sintaxis

objeto.Tag [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Una expresión de cadena que identifica al objeto. El valor predeterminado es una cadena de longitud cero ("").
Comentarios

Utilice la propiedad Tag para asignar una cadena de identificación a un objeto sin que afecte a los valores de otras propiedades o atributos.

Por ejemplo, puede utilizar la propiedad Tag para comprobar la identidad de un formulario o un control que se transfirió como una variable a un procedimiento.


Text (Propiedad)

Devuelve o establece el texto en un control TextBox o del área editable de un control ComboBox. Cambia la fila seleccionada en un control ListBox.

Sintaxis

objeto.Text [= String]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
String	Opcional. Una expresión de cadena que especifica el texto. El valor predeterminado es una cadena de longitud cero ("").
Comentarios

Para un control TextBox, cualquier valor que asigne a la propiedad Text también se asigna a la propiedad Value.

Para un control ComboBox, puede utilizar Text para actualizar el valor de control. Si el valor del control Text coincide con una entrada existente de la lista, el valor de la propiedad ListIndex (el índice de la fila activa) se establece en la fila que coincide con el control Text. Si el valor del control Text no coincide con ninguna fila, la propiedad ListIndex es –1.

Para un control ListBox, el valor del control Text debe coincidir con una entrada existente de la lista. Especificar un valor que no coincide con una entrada existente de la lista produce un error.

No puede utilizar el control Text para cambiar el valor de una entrada en un control ComboBox o ListBox; para ello utilice la propiedad Column o List.

La propiedad ForeColor determina el color del texto.


TextAlign (Propiedad)

Especifica cómo se alinea el texto en un control.

Sintaxis

objeto.TextAlign [= fmTextAlign]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmTextAlign	Opcional. Cómo se alinea el texto en un control.
Valores

Los valores para fmTextAlign son:

Constante	Valor	Descripción
fmTextAlignLeft	1	Alinea el primer carácter del texto mostrado con el borde izquierdo del área de presentación o edición del control (predeterminado).
FmTextAlignCenter	2	Centra el texto en el área de presentación o edición del control.
FmTextAlignRight	3	Alinea el último carácter del texto mostrado con el borde derecho del área de presentación o edición del control.
Comentarios

Para un control ComboBox, la propiedad TextAlign solamente afecta al área de edición; esta propiedad no tiene efecto sobre la alineación de texto en la lista. Para etiquetas autónomas, la propiedad TextAlign determina la alineación de los títulos de la etiquetas.


TextColumn (Propiedad)

Identifica la columna en un control ComboBox o ListBox que se muestra al usuario.

Sintaxis

objeto.TextColumn [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. La columna que se muestra.
Valores

El intervalo de valores para la propiedad TextColumn es desde –1 al número de columnas de la lista. El valor de la propiedad TextColumn para la primera columna es 1, el valor para la segunda columna es 2, y así sucesivamente. Establecer la propiedad TextColumn a 0 muestra los valores de la propiedad ListIndex. Establecer TextColumn a –1 muestra la primera columna que tiene una valor de propiedad ColumnWidths mayor que 0.

Comentarios

Cuando el usuario selecciona una fila de un control ComboBox o ListBox, la columna a la que hace referencia la propiedad TextColumn se almacena en la propiedad Text. Por ejemplo, no podría configurar un control ListBox de múltiples columnas que contuviera los días de vacaciones en un columna y las fechas para los mismos en la segunda columna. Para presentar los días de vacaciones y los nombres a los usuarios, especifique la primera columna como la propiedad TextColumn. Para almacenar las fechas de las vacaciones, especifique la segunda columna como la propiedad BoundColumn.

Cuando la propiedad Text de un control ComboBox cambia (como cuando un usuario escribe una entrada en el control), el texto nuevo se compara con la columna de datos especificada por la propiedad TextColumn.


TextLength (Propiedad)

Devuelve la longitud, en caracteres, del texto que hay en el área de edición de un control TextBox o ComboBox.

Sintaxis

objeto.TextLength

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Comentarios

La propiedad TextLength es de sólo lectura. Para un control TextBox de múltiples líneas, la propiedad TextLength incluye los caracteres LF (avance de línea) y CR (avance de carro).


TopIndex (Propiedad)

Establece y devuelve el elemento que se muestra en la primera posición de la lista.

Sintaxis

objeto.TopIndex [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. El número de elemento de la lista que se muestra en la primera posición. El valor predeterminado es 0 o el primer elemento de la lista.
Valores

Devuelve el valor –1 si la lista está vacía o no se muestra.


TransitionEffect (Propiedad)

Especifica el efecto visual que se va a utilizar cuando se cambia de una página a otra.

Sintaxis

objeto.TransitionEffect [= fmTransitionEffect]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
FmTransitionEffect	Opcional. El efecto de transición entre páginas que desea.
Valores

Los valores para fmTransitionEffect son:

Constante	Valor	Descripción
fmTransitionEffectNone	0	Sin efecto especial (predeterminado).
fmTransitionEffectCoverUp	1	La página nueva cubre la página antigua, moviéndola de la parte inferior a la superior.
fmTransitionEffectCoverRightUp	2	La página nueva cubre la página antigua, moviéndola de la esquina inferior izquierda a la esquina superior derecha.
fmTransitionEffectCoverRight	3	La página nueva cubre la página antigua, moviéndola del borde izquierdo al derecho.
fmTransitionEffectCoverRightDown	4	La página nueva cubre la página antigua, moviéndola de la esquina superior izquierda a la esquina inferior derecha.
fmTransitionEffectCoverDown	5	La página nueva cubre la página antigua, moviéndola de la parte superior a la inferior.
fmTransitionEffectCoverLeftDown	6	La página nueva cubre la página antigua, moviéndola de la esquina superior derecha a la esquina inferior izquierda.
fmTransitionEffectCoverLeft	7	La página nueva cubre la página antigua, moviéndola del borde derecho al izquierdo.
fmTransitionEffectCoverLeftUp	8	La página nueva cubre la página antigua, moviéndola de la esquina inferior derecha a la esquina superior izquierda.
fmTransitionEffectPushUp	9	La página nueva empuja la página antigua fuera de la pantalla, moviéndola de la parte inferior a la parte superior.
fmTransitionEffectPushRight	10	La página nueva empuja la página antigua fuera de la pantalla, moviéndola de la izquierda a la derecha.
fmTransitionEffectPushDown	11	La página nueva empuja la página antigua fuera de la pantalla, moviéndola de la parte superior a la parte inferior.
fmTransitionEffectPushLeft	12	La página nueva empuja la página antigua fuera de la pantalla, moviéndola de la derecha a la izquierda.
Comentarios

Utilice la propiedad TransitionPeriod para especificar la duración del efecto de transición.


TransitionPeriod (Propiedad)

Especifica la duración, en milisegundos, de un efecto de transición.

Sintaxis

objeto.TransitionPeriod [= tiempo]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Tiempo	Opcional. Cuánto tiempo lleva completar la transición de una página a otra.
Comentarios

Es válido un número entero desde 0 a 10000 para esta propiedad. Establecer la propiedad TransitionPeriod a cero deshabilita el efecto de transición; establecer la propiedad TransitionPeriod a 10000 crea una transición de 10 segundos.


TripleState (Propiedad)

Determina si un usuario puede especificar, desde la interfaz de usuario, el estado Nulo para un control CheckBox o ToggleButton.

Sintaxis

objeto.TripleState [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el control permite el estado Nulo.
Valores

Los valores para Boolean son:

Valor	Descripción
True	Al hacer clic cambia a través de los tres estados.
False	El botón solamente permite Verdadero y Falso (predeterminado).
Comentarios

Aunque la propiedad TripleState existe en OptionButton, la propiedad se deshabilita. Sin tener en cuenta el valor de TripleState, no puede establecer el control a Null mediante la interfaz de usuario.

Cuando la propiedad TripleState es True, un usuario puede elegir entre los valores Null, True y False. El valor nulo se muestra como un botón sombreado.

Cuando la propiedad TripleState es False, el usuario puede elegir True o False.

Establecer un control a Null no inicia el evento Click.

Sin tener en cuenta el valor de la propiedad, siempre se puede asignar el valor Null mediante programa a un control CheckBox o ToggleButton, haciendo que el control se muestre sombreado.


Value (Propiedad)

Especifica el estado o el contenido de un control determinado.

Sintaxis

objeto.Value [= Variant]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Variant	Opcional. El estado o el contenido del control.
Valores

Control	Descripción
CheckBox	Un valor entero que indica si el elemento está seleccionado:
	Null   Indica que el elemento no está ni seleccionado ni borrado.
	–1   Verdadero. Indica que el elemento está seleccionado.
	0   Falso. Indica que el elemento está desactivado.
OptionButton	Igual que para el control CheckBox.
ToggleButton	Igual que para el control CheckBox.
ScrollBar	Un número entero entre valores especificados para las propiedades Max y Min.
SpinButton	Igual que para el control ScrollBar.
ComboBox, ListBox	El valor de la propiedad BoundColumn de las filas seleccionadas actualmente.
CommandButton	Siempre es False.
MultiPage	Un número entero que indica la página activa actualmente.
	Cero (0) indica la primera página. El valor máximo es uno menos que el número de páginas.
TextBox	El texto que hay en el área de edición.
Comentarios

Para un control CommandButton, establecer la propiedad Value a True en una macro o en un procedimiento inicia el evento Click del botón.

Para un control ComboBox, cambiar el contenido de la propiedad Value no cambia el valor de la propiedad BoundColumn. Para agregar o eliminar entradas en un control ComboBox, puede utilizar el método AddItem o RemoveItem.

La propiedad Value no se puede utilizar con un cuadro de lista de selección múltiple.


VerticalScrollbarSide (Propiedad)

Especifica si se muestra una barra de desplazamiento vertical en el lado izquierdo o derecho de un formulario o una página.

Sintaxis

objeto.VerticalScrollbarSide [= fmVerticalScrollbarSide]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
fmVerticalScrollbarSide	Opcional. Si se debe mostrar la barra de desplazamiento.
Valores

Los valores para fmVerticalScrollbarSide son:

Constante	Valor	Descripción
fmVerticalScrollbarSideRight	0	Coloca la barra de desplazamiento en el lado derecho (predeterminado).
fmVerticalScrollBarSideLeft	1	Coloca la barra de desplazamiento en el lado izquierdo.
Comentarios

La propiedad VerticalScrollBarSide es especialmente útil si el formulario se va a utilizar en un entorno donde se lee de derecha a izquierda.


Visible (Propiedad)

Especifica si un objeto es visible o está oculto.

Sintaxis

objeto.Visible [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el objeto es visible o está oculto.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El objeto es visible (predeterminado).
False	El objeto está oculto.
Comentarios

Utilice la propiedad Visible para controlar el acceso a información sin mostrarla. Por ejemplo, podría utilizar el valor de un control en un formulario oculto como criterio para una consulta.

Todos los controles son visibles en tiempo de diseño.


WordWrap (Propiedad)

Indica si el contenido de un control se ajusta automáticamente al final de la línea.

Sintaxis

objeto.WordWrap [= Boolean]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Boolean	Opcional. Si el control se expande para dar cabida al texto.
Valores

Los valores para Boolean son:

Valor	Descripción
True	El texto se ajusta (predeterminado).
False	El texto no se ajusta.
Comentarios

Para controles que permitan la propiedad MultiLine y la propiedad WordWrap, WordWrap se pasa por alto cuando la propiedad MultiLine es False.


Zoom (Propiedad)

Especifica cuánto cambia el tamaño del objeto mostrado.

Sintaxis

objeto.Zoom [= Integer]

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

Parte	Descripción
objeto	Requerido. Un objeto válido.
Integer	Opcional. El porcentaje de incremento o disminución de la imagen mostrada.
Comentarios

El valor de la propiedad Zoom especifica un porcentaje de ampliación o reducción de imagen en el cual la presentación de la imagen debería cambiar. Son válidos los valores desde 10 hasta 400. El valor especificado es un porcentaje del tamaño original del objeto; de este modo, un valor 400 significa que desea ampliar la imagen cuatro veces su tamaño original (o 400 por cien), mientras que un valor 10 significa que quiere reducir la imagen a una décima parte de su tamaño original (o 10 por cien).


tecla de aceleración

Un carácter sencillo que se utiliza como un método abreviado para seleccionar un objeto. Presionar la tecla ALT seguida de una tecla de aceleración entrega el enfoque al objeto e inicia uno o más eventos asociados con el objeto. El evento específico o los eventos iniciados varían de un objeto a otro. Si se asocia el código con un evento, éste se ejecuta cuando se inicia el evento. También se llama acelerador de teclado, tecla de método abreviado o método abreviado de teclado.


color de segundo plano

El color de la región del cliente de una ventana vacía o de una pantalla , en la cual tiene lugar el diseño y muestra de color.


dependiente

Describe un control cuyo contenido está asociado con un origen de datos concreto, como una celda o rango de celdas de una hoja de cálculo.


identificador de clase (CLSID)

Un identificador único (UUID) que identifica un objeto. Un objeto guarda su CLSID en la base de datos de registro del sistema para que el objeto se pueda cargar y programar en otras aplicaciones.


borrar

Para cambiar un valor a "desactivado" o quitar un valor.


región del cliente

La parte de una ventana donde una aplicación muestra la salida como texto o gráficos.


Id de contexto

Un número único o una cadena que corresponde a un objeto específico en una aplicación. Los Id de contexto se utilizan para crear vínculos entre la aplicación y su correspondiente tema de la Ayuda.


grupo de controles

Un conjunto de controles que están relacionados conceptual o lógicamente. Los controles que están relacionados conceptualmente normalmente se muestran juntos, pero no se ven afectados necesariamente entre sí. Los controles que están relacionados lógicamente se ven afectados entre sí. Por ejemplo, el valor de un botón de un grupo de botones de opción establece el valor de los otros botones del grupo a False.


Información sobre control

Una frase breve que describe un control, un objeto Page o Tab. La información sobre control aparece cuando el usuario mantiene brevemente el puntero del mouse sobre un control sin hacer clic. Una información sobre control es parecida a una Información sobre herramientas. Microsoft Forms proporciona a los programadores información sobre herramientas en tiempo de diseño, mientras que los programadores proporcionan información sobre controles a los usuarios en tiempo de ejecución.


cursor

Fragmento del software que devuelve filas de datos a la aplicación. Un cursor en un conjunto resultado indica la posición actual en el conjunto resultado.


ciclo

Para moverse a través de un grupo de objetos en un orden determinado.


formato de datos

La estructura o la apariencia de una unidad de datos, como un archivo, un registro de una base de datos, una celda de una hoja de cálculo o texto en un documento de un procesador de textos.


origen de datos

La ubicación de los datos que dependen de un control, por ejemplo, una celda de una hoja de cálculo. El valor actual del origen de datos se puede almacenar en la propiedad Value de un control. Sin embargo, el control no almacena los datos; sólo muestra la información que está almacenada en el origen de los datos.


control dominante

Una referencia para el comando Align y el comando Make Same Size en el menú Format. Cuando se alinean controles, los controles seleccionados se alinean al control dominante. Cuando se cambia el tamaño de los controles, se asigna el tamaño del control dominante a los controles seleccionados.

El control dominante se indica mediante cuadros de tamaño blancos. Los cuadros de tamaño de los otros controles seleccionados son negros.


origen de colocación

El objeto u texto seleccionado que se arrastra en una operación de arrastrar y colocar.


constante enumerada

Puede encontrar información adicional acerca de un elemento de datos enumerado en la descripción de la propiedad, método o evento que utiliza  la enumeración.


color de primer plano

El color que está seleccionado actualmente para diseñar o mostrar texto en la pantalla. En las pantallas monocromáticas, el color de primer plano es el de un mapa de bits u otro gráfico.


bloque de cuadrícula

El espacio entre dos puntos de la cuadrícula adyacentes.


Input Method Editor (IME)

Una aplicación que traduce lo que escribe a caracteres de un lenguaje DBCS, como el Japonés o Chino. A medida que el usuario escribe, el IME muestra equivalencias posibles. El usuario selecciona la entrada más apropiada.


propiedad heredada

Una propiedad que ha adquirido las características de otra clase.


estado del teclado

Un valor devuelto que identifica que teclas están presionadas y si los modificadores del teclado MAYÚSCULAS, CTRL y ALT están presionadas.


control contenedor OLE

Un control de Visual Basic que se utiliza para vincular e incrustar objetos de otras aplicaciones a una aplicación Visual Basic.


código de estado OLE

La parte del número de error de una estructura de datos que devuelve información para las condiciones de error. La estructura de datos se define en ActiveX.


marcador de posición

Un carácter que enmascara u oculta otro carácter por razones de seguridad. Por ejemplo, cuando un usuario escribe una contraseña, se muestra un asterisco en la pantalla que sustituye a cada carácter escrito.


página de propiedades

Un grupo de propiedades presentadas como una página de fichas de una hoja de propiedades.


RGB

Un sistema de valor de color utilizado para describir los colores como una mezcla de rojo (R-red), verde (G-green) y azul (B-blue). El color se define como un conjunto de tres enteros (R,G,B) donde cada entero debe estar comprendido entre 0 y 255. El valor 0 indica la ausencia total de un color. El valor 255 indica la intensidad de color más alta de un color.


colores del sistema

Colores que se definen por el sistema operativo para un tipo de monitor y adaptador de vídeo específico. Cada color está asociado con una parte específica de la interfaz de usuario, como un título de ventana o un menú.


destino

Un objeto en el que el usuario coloca el objeto que arrastra.


transparente

Describe el fondo del objeto si el fondo no es visible. En lugar del fondo, se ve lo que está situado detrás del objeto, por ejemplo, una imagen o dibujo que se utiliza como un telón en su aplicación. Utilice la propiedad BackStyle para hacer el fondo transparente.


independiente

Describe un control que no está relacionado a una celda de una hoja de cálculo. En el caso contrario, un control dependiente es un origen de datos de una celda de una hoja de cálculo que proporciona el acceso a mostrar y modificar el valor de un control.


¿Qué es un control MultiPage?

Un control MultiPage es un control que contiene una colección de una o más páginas.

Cada objeto Page de un control MultiPage es un formulario que contiene sus propios controles y, como tal, puede tener un diseño único. Normalmente, las páginas en un control MultiPage tienen fichas de modo que el usuario pueda seleccionar las páginas individuales.

De forma predeterminada, un control MultiPage incluye dos páginas, llamadas Page1 y Page2. Cada una de ellas es un objeto Page y juntas representan la colección Pages del control MultiPage. Si agrega más páginas, éstas formarán parte de la misma colección Pages.


¿Qué es un control TabStrip?

Un control TabStrip es un control que contiene una colección de una o más fichas.

Cada objeto Tab de un control TabStrip es un objeto independiente que el usuario puede seleccionar. Visualmente, un control TabStrip también incluye una área cliente que comparten todas las fichas del control TabStrip.

De forma predeterminada, un control TabStrip incluye dos fichas, llamadasTab1 y Tab2. Cada una de ellas es un objeto Tab y juntas representan la colección Tabs del control TabStrip. Si agrega más fichas, éstas formarán parte de la misma colección Tabs.


¿Debo utilizar un control MultiPage o un control TabStrip?

Si utiliza un único diseño para sus datos, utilice un control TabStrip y asigne cada conjunto de datos a su propio objeto Tab. Si necesita varios diseños para los datos, utilice un control MultiPage y asigne cada diseño a su propio objeto Page.

A diferencia de un objeto Page de un control MultiPage, la región del cliente de un control TabStrip no es un formulario independiente, sino una parte del formulario que lo contiene. El borde de un control TabStrip define una zona del formulario que puede asociar con las fichas. Cuando coloca un control en el área cliente de un control TabStrip, se agrega un control al formulario que contiene el control TabStrip.


Sugerencias para utilizar cuadros de texto

TextBox es un control flexible controlado por las siguientes propiedades: Text, MultiLine, WordWrap y AutoSize.

La propiedad Text contiene el texto que se va a mostrar en el cuadro de texto.

La propiedad MultiLine controla si el control TextBox puede mostrar texto en una única línea o en múltiples líneas. Los caracteres de nueva línea identifican dónde termina una línea y empieza otra. Si la propiedad MultiLine es False, el texto se trunca en vez de ajustarse.

La propiedad WordWrap permite que el control TextBox ajuste las líneas de texto más largas que el ancho del mismo para que quepan.

Si no utiliza la propiedad WordWrap, el control TextBox inicia una nueva línea de texto cuando encuentra un carácter de nueva línea en el texto. Si la propiedad WordWrap está desactivada, puede tener líneas de texto que no quepan completamente en el control TextBox. El control TextBox muestra las partes de texto que caben dentro de su ancho y trunca las partes de texto que no caben. La propiedad WordWrap no es aplicable a menos que MultiLine sea True.

La propiedad AutoSize controla si el control TextBox se adapta para mostrar todo el texto. Cuando se utiliza la propiedad AutoSize con un control TextBox, el ancho del control TextBox se comprime o se expande de acuerdo con la cantidad de texto existente en el control TextBox y el tamaño de fuente utilizado para mostrar el texto.

La propiedad AutoSize se comporta bien en las siguientes situaciones:

•	Presentación de un título de una o más líneas.

•	Presentación del contenido de un control TextBox de una única línea.

•	Presentación del contenido de un control TextBox de múltiples líneas que es de sólo lectura para el usuario.

Nota   Evite el uso de la propiedad AutoSize con un control TextBox vacío que también puede utilizar las propiedades MultiLine y WordWrap. Cuando el usuario introduce texto en un control TextBox con estas propiedades, el control TextBox cambia de tamaño automáticamente a un cuadro alto y estrecho de un carácter de ancho y del mismo largo que la línea de texto.


Crear un cuadro de lista estándar

1	En la ventana Propiedades, seleccione la propiedad StyleList.

2	Haga clic en la flecha de la lista desplegable para mostrar una lista de estilos disponibles.

3	En la lista, elija Plain.


Crear un cuadro de lista con botones de opción o casillas de verificación

1	En al ventana Propiedades, seleccione la propiedad StyleList.

2	Haga clic en la flecha de la lista desplegable para mostrar una lista de estilos disponibles.

3	En la lista, elija Option.

Cuando la propiedad ListStyle es Option, la propiedad MultiSelect determina si las casillas de verificación o los botones de opción aparecen en la lista. Cuando MultiSelect es Single, las opciones de botón aparecen en la lista. Cuando MultiSelect es Multi o Extended, las casillas de verificación aparecen en la lista.


Estilos de los controles ListBox

Puede elegir entre dos estilos de presentación para un control ListBox. Cada estilo proporciona diferentes formas para que los usuarios seleccionen elementos en una lista.

Si el estilo es Plain, cada elemento está en una fila independiente; el usuario selecciona un elemento resaltando una o más filas.

Si el estilo es Option, aparece un botón de opción o una casilla de verificación al principio de cada fila. Con este estilo, el usuario selecciona un elemento haciendo clic en el botón de opción o en la casilla de verificación. Las casillas de verificación sólo aparecen cuando la propiedad MultiSelect es True.


¿Cuál es la diferencia entre el control DataObject y el Portapapeles?

El control DataObject y el Portapapeles proporcionan un medio de mover datos de un lugar a otro. Como programador de aplicaciones, tiene que recordar diversos puntos importantes cuando utilice un control DataObject o el Portapapeles:

•	Puede almacenar más de un fragmento de datos al mismo tiempo en un control DataObject o en el Portapapeles siempre y cuando cada fragmento de los mismos tenga un formato de datos diferente. Si almacena datos con un formato que ya se está utilizando, los datos nuevos se guardan y se pierden los anteriores.

•	El Portapapeles admite formatos de imágenes y de texto. Un control DataObject sólo admite actualmente formatos de texto.

•	Un control DataObject existe sólo mientras se ejecuta su aplicación; el Portapapeles existe mientras se ejecuta el sistema operativo. Esto significa que puede colocar datos en el Portapapeles y cerrar una aplicación sin perder los datos. Esto no sucede así con el control DataObject. Si cierra la aplicación que coloca datos en un control DataObject, perderá los datos.

•	Un control DataObject es un objeto ActiveX estándar, mientras que el Portapapeles no lo es. Esto significa que el Portapapeles puede admitir operaciones de movimiento estándar (copiar, cortar y pegar) pero no operaciones de arrastrar y colocar. Debe utilizar el control DataObject si quiere que su aplicación admita operaciones de arrastrar y colocar.

Sugerencia   Puede definir sus propios nombres de formatos de datos cuando utilice el método SetText para mover datos al Portapapeles o a un objeto DataObject. Esto puede ayudarle a distinguir entre el texto que mueve su aplicación y el texto que mueve el usuario.


Mostrar u ocultar el Cuadro de herramientas

En el menú Ver, compruebe si hay una marca de verificación junto al Cuadro de herramientas. Si la marca de verificación está presente, el cuadro de herramientas se muestra. Si no, el cuadro de herramientas se oculta.

Realice uno de los pasos siguientes:

•	Para mostrar el cuadro de herramientas, asegúrese de que aparece una marca de verificación a la izquierda de Cuadro de herramientas. Si no, seleccione Cuadro de herramientas.

•	Para ocultar el cuadro de herramientas, asegúrese de que no hay una marca de verificación a la izquierda de Cuadro de herramientas. Si la hay, seleccione Cuadro de herramientas para quitarla.


¿Qué es el Cuadro de herramientas?

El cuadro de herramientas identifica los diferentes controles que puede agregar a un formulario, control Frame o Page.

Puede personalizar el cuadro de herramientas de varias formas incluyendo las siguientes:

•	Agregue páginas al cuadro de herramientas.

•	Mueva los controles de una página a otra.

•	Cambie el nombre de las páginas.

•	Agregue otros controles, incluyendo controles ActiveX, al cuadro de herramientas.

•	Copie controles personalizados desde el formulario al cuadro de herramientas.

Por ejemplo, los botones Aceptar y Cancelar son casos especiales de un control CommandButton. Si agrega plantillas Aceptar y Cancelar al cuadro de herramientas, puede agregarlas rápidamente a otros formularios.


Agregar un control personalizado al Cuadro de herramientas

1	Coloque un control en su formulario y personalícelo.

Por ejemplo, para crear un botón Aceptar, coloque un control CommandButton en el formulario, establezca su propiedad Caption a Aceptar y establezca su propiedad Default a True.

2	Seleccione el control personalizado.

3	Arrastre el control al cuadro de herramientas.

Nota   Cuando arrastre un control al cuadro de herramientas, solamente transferirá los valores de las propiedades. Cualquier código que haya escrito para ese control no se transfiere con el control. Debe escribir código nuevo para el icono o copiar el código del control de formulario al control del cuadro de herramientas.


Agregar un control a un formulario

Utilice cualquiera de los siguientes métodos para agregar un control del Cuadro de herramientas al formulario. También puede utilizar estos métodos para insertar un control en un control Frame, TabStrip o MultiPage del formulario.

•	Haga clic en un control en el Cuadro de herramientas y después haga clic en el formulario. El control aparece en su tamaño predeterminado. Puede arrastrar el control para cambiar su tamaño.

•	Arrastre un control del Cuadro de herramientas al formulario. El control aparece en su tamaño predeterminado.

•	Haga doble clic en el control del Cuadro de herramientas  y después haga clic en el formulario una vez por cada control que desee crear. Por ejemplo, para crear cuatro botones de comando, haga doble clic en el control CommandButton del Cuadro de herramientas y después haga clic cuatro veces en el formulario.


Agregar un control al Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en cualquier icono de control en el cuadro de herramientas o en una área vacía de cualquier página del cuadro de herramientas.

2	En el menú de acceso directo, seleccione Controles adicionales.

3	En la lista Controles disponibles, seleccione los nuevos controles.

4	Haga clic en Aceptar.


Eliminar un elemento del Cuadro de herramientas

1	En el cuadro de herramientas, haga clic con el botón secundario del mouse en el icono del elemento que desea quitar.

2	En el menú de acceso directo, seleccione Eliminar. El comando incluirá el nombre del control seleccionado.

Nota   Si está eliminando controles, puede utilizar Controles adicionales del menú de acceso directo y desactivar las casillas de verificación de todos los controles que desea eliminar.


Personalizar un icono del Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en el icono en el cuadro de herramientas.

2	En el menú de acceso directo, elija Personalizar.

3	Realice uno de los pasos siguientes:

•	Para cambiar la Información sobre herramientas, escriba el nuevo texto para la Información sobre herramientas.

•	Para modificar el icono, elija Modificar imagen. Elija el color que desea utilizar y el píxel de la imagen donde quiere aplicar ese color.

•	Para asignar un nuevo mapa de bits, elija Cargar imagen. Después, identifique el archivo que contiene el mapa de bits que quiere utilizar como icono. Si intenta cargar una imagen que es mayor que un icono, se producirá un error.


¿Qué es Información sobre herramientas?

Información sobre herramientas es una breve descripción, normalmente solo unas pocas palabras, que aparece cuando el usuario mantiene brevemente el puntero del mouse sobre un control u otra parte de la interfaz de usuario sin hacer clic. Puede personalizar la Información sobre herramientas para controles y para el cuadro de herramientas.

El valor predeterminado para un nuevo control que se copia desde un formulario al cuadro de herramientas es "New" seguido del tipo del control. Por ejemplo, la Información sobre herramientas predeterminada para un control CommandButton personalizado (como Aceptar) es "New CommandButton". Si un control no tiene Información sobre herramientas asociada, el valor predeterminado es "Unknown".

Nota   La Información sobre herramientas es una información proporcionada por Microsoft Forms a los programadores de formularios en modo de diseño. Cada control tiene una propiedad ControlTipText que permite a los programadores de formularios dar una "Información sobre herramientas" a los usuarios finales mientras la aplicación se está ejecutando.


Personalizar una Información sobre herramientas en el Cuadro de herramientas

1	Seleccione el control en el cuadro de herramientas.

2	Haga clic con el botón secundario del mouse.

3	En el menú de acceso directo, elija Personalizar. El comando Personalizar incluirá el nombre del control, como "Etiqueta personalizada".

4	Escriba el nuevo texto para la Información sobre herramientas.

5	Haga clic en Aceptar.


Configurar la Información sobre herramientas para una página del Cuadro de herramientas

1	Seleccione la página del cuadro de herramientas.

2	Haga clic con el botón secundario del mouse.

3	En el menú de acceso directo, elija Cambiar nombre.

4	Escriba el nuevo texto para la Información sobre herramientas.

5	Haga clic en Aceptar.


Cambiar el nombre de una página de Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en la ficha de la página del cuadro de herramientas cuyo nombre desea cambiar.

2	En el menú de acceso directo, elija Cambiar nombre.

3	En el campo Caption, escriba el nuevo nombre que desea utilizar.

4	Haga clic en Aceptar.


Cambiar el orden de las páginas de Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en la ficha de cualquier página del cuadro de herramientas.

2	En el menú de acceso directo, elija Mover.

3	Seleccione el nombre de una página que desea mover.

4	Elija Mover arriba o Mover abajo hasta que la página esté en la posición adecuada en la lista de páginas.

5	Haga clic en Aceptar.


Crear una página nueva en el Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en la ficha de cualquier página del cuadro de herramientas. La nueva página se insertará después de esta página.

2	Elija Nueva página.


Eliminar una página del Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en la ficha de la página del cuadro de herramientas que desea quitar.

2	Elija Quitar página. Al mismo tiempo se eliminarán todos los controles de la página.


Importar o exportar una página del Cuadro de herramientas

1	Haga clic con el botón secundario del mouse en la ficha de cualquier página del cuadro de herramientas. Si importa una página, ésta se insertará después de esta página.

2	Realice uno de los pasos siguientes:

•	Para importar una página, elija Importar página. Seleccione el nombre del archivo de página que desea importar.

•	Para exportar una página, elija Exportar página. Escriba un nombre para el archivo que almacenará una copia de la página del cuadro de herramientas. Al exportar una página no se quita del cuadro de herramientas.

3	Haga clic en Aceptar.


Mover un elemento a otra página del Cuadro de herramientas

1	Seleccione un control en cualquier página del cuadro de herramientas.

2	Arrastre el control a la ficha de la nueva página. Mantenga el puntero del mouse sobre la ficha hasta que la página aparezca en la parte frontal del cuadro de herramientas.

3	Arrastre el control a la región principal de la página.

Nota   Si la página en la que desea colocar el control no es visible, puede aumentar el ancho del cuadro de herramientas para mostrar fichas para todas las páginas y después arrastrar el control a la página adecuada.


Cambiar el tamaño del Cuadro de herramientas

1	Mueva el puntero del mouse sobre un borde o una esquina del cuadro de herramientas. El puntero adopta la forma de una flecha de dos puntas.

2	Cuando aparezca la flecha de dos puntas, arrastre el cuadro de herramientas para cambiar su tamaño.


Asignar un tema de Ayuda personalizado a un control

En este procedimiento se supone que ha creado un archivo de Ayuda personalizado y lo ha asociado con su proyecto. El procedimiento para asociar un archivo de Ayuda con un proyecto depende del entorno de su proyecto.

1	Seleccione un control para el cual haya escrito un tema de Ayuda personalizado.

2	En la ventana Propiedades, seleccione la propiedad HelpContextID.

3	Escriba el Id de contexto del tema adecuado de su archivo de Ayuda personalizado.


Personalizar archivos de Ayuda

Como programador de aplicaciones, puede utilizar un archivo de Ayuda personalizado para proporcionar información acerca de cómo utilizar su aplicación de formulario.

Para crear un archivo de Ayuda personalizado, utilice un producto o una herramienta que cree archivos de Ayuda para Windows.

Puede asociar un tema específico de su archivo de Ayuda personalizado con cada control de su aplicación. Cuando su aplicación se está ejecutando, el usuario puede ver su tema de Ayuda seleccionando el control y presionando F1.


Asignar una tecla de aceleración

1	En el modo de diseño, seleccione el control en el formulario.

2	En la ventana Propiedades, seleccione la propiedad Accelerator.

3	Escriba un único carácter como el valor para Accelerator.

Sugerencia   Utilice un carácter del título del control. Observe que el carácter seleccionado está subrayado en el título del control.


Asignar una tecla de aceleración para un objeto Page o Tab

1	En el modo de diseño, seleccione un objeto Page o Tab individual. Asegúrese de seleccionar el control Page o Tab, no el control MultiPage o TabStrip asociado. Cuando se selecciona un objeto Page o Tab, aparece un rectángulo alrededor del título del objeto Page o Tab.

2	Haga clic con el botón secundario del mouse en el objeto Page o Tab seleccionado.

3	En el menú de acceso directo, elija Cambiar nombre.

4	En el cuadro de diálogo Cambiar nombre, escriba un único carácter en el campo Tecla de aceleración.

Sugerencia   Utilice un carácter del título del control. Observe que el carácter seleccionado está subrayado en el título del control.


Asignar información sobre un control a un objeto Page o Tab

1	Seleccione un objeto Page o Tab individual.

Asegúrese de seleccionar el control Page o Tab, no el control MultiPage o TabStrip asociado. Cuando se selecciona un objeto Page o Tab, aparece un rectángulo alrededor del título del objeto.

2	Haga clic con el botón secundario del mouse en el objeto Page o Tab seleccionado.

3	En el menú de acceso directo, elija Cambiar nombre.

4	En el campo ControlTipText, escriba la cadena que desea utilizar como la información sobre control.

5	Haga clic en Aceptar.

Sugerencia   Para asignar una información sobre control para un control MultiPage o TabStrip, utilice la propiedad ControlTipText.


Asignar una información sobre control a un control

1	Seleccione el control.

2	En la ventana Propiedades, seleccione la propiedad ControlTipText.

También puede establecer el valor de ControlTipText mediante código.

3	Escriba la cadena que desea utilizar como la información sobre control.

Sugerencia   Para asignar una información sobre control a un objeto Page o Tab, utilice el comando Cambiar nombre del menú de acceso directo del objeto Page o Tab.


¿Qué es una información sobre control?

Una información sobre control es una breve frase que describe un control, un objeto Page o un objeto Tab. La información sobre control aparece cuando el usuario mantiene brevemente el puntero del mouse sobre un control sin hacer clic. Una información sobre control es muy parecida a una Información sobre herramientas. La diferencia es que Microsoft Forms proporciona Informaciones sobre herramientas a los programadores en tiempo de diseño, y los programadores proporcionan informaciones sobre controles a los usuarios finales en tiempo de ejecución.

Si asigna un información sobre control a un control MultiPage o TabStrip, no se muestran las informaciones sobre controles para los objetos Page o Tab individuales dentro del control MultiPage o TabStrip.


Asignar un título

Para asignar un título a un control CheckBox, CommandButton, Frame, Label, OptionButton o ToggleButton:

1	Muestre la ventana Propiedades del control.

2	Seleccione la propiedad Caption.

3	Escriba el texto que desea utilizar como título.

Para asignar un título a un objeto Page o Tab:

1	Seleccione el control MultiPage o TabStrip que contiene el objeto Page o Tab.

2	Seleccione el objeto Page o Tab individual. Cuando el objeto Page o Tab está seleccionado, aparece un rectángulo alrededor de su título.

3	Haga clic con el botón secundario del mouse en el control MultiPage o TabStrip seleccionado.

4	En el menú de acceso directo, elija Cambiar nombre.

5	En el campo Título, escriba el texto que desea utilizar como título.

6	Haga clic en Aceptar.


¿Qué es un título?

Un título es un texto descriptivo que aparece directamente sobre o alrededor de un control. Los siguientes controles pueden tener títulos: CheckBox, CommandButton, Frame, Label, OptionButton y ToggleButton. Los objetos Page y Tab que forman parte de un control MultiPage y TabStrip también pueden tener títulos.


Establecer el orden de tabulación utilizando el cuadro de diálogo Orden de tabulación

1	Asegúrese de que no hay ningún control seleccionado.

2	Haga clic con el botón secundario del mouse en el formulario, pero no en un control.

3	En el menú de acceso directo, elija Orden de tabulación.

4	Seleccione el nombre de un control que desea cambiar de posición en el orden de tabulación.

5	Elija Mover arriba o Mover abajo hasta que el nombre del control esté en la posición adecuada dentro del orden de tabulación.


Establecer el orden de tabulación utilizando la propiedad TabIndex

1	Identifique el orden de tabulación que desea utilizar para el formulario.

El índice de tabulación del primer control en el orden de tabulación es 0, el índice de tabulación del segundo es 1, y así sucesivamente.

2	Seleccione un control en el orden de tabulación.

3	En la ventana Propiedades, seleccione la propiedad TabIndex.

4	Escriba el número adecuado para identificar la posición del control en el orden de tabulación.


Cambiar el orden de las páginas en un control MultiPage o TabStrip

1	Seleccione cualquier página en el control MultiPage o TabStrip.

2	Haga clic con el botón secundario del mouse en el título de la página.

3	En el menú de acceso directo, elija Mover.

4	En el cuadro de diálogo Mover, seleccione el objeto Page que desea mover.

5	Elija Mover arriba o Mover abajo para cambiar la posición de la página.

6	Una vez haya realizado todos los cambios, haga clic en Aceptar.

Nota   También puede utilizar la propiedad Index para cambiar el orden de las páginas mediante la ventana Propiedades. El índice de la primera página es 0, el índice de la segunda página es 1, y así sucesivamente.


Cambiar el tamaño del formulario

En tiempo de diseño:

•	Arrastre el controlador de tamaño del formulario hasta que éste tenga el tamaño que desea.

En tiempo de ejecución:

•	Establezca las propiedades Height y Width del formulario a los valores adecuados.


Cambiar la ubicación del formulario

Mediante la interfaz de usuario:

•	Arrastre la barra de título hasta que el formulario esté donde desea.

En tiempo de diseño:

•	Establezca las propiedades Left y Top del formulario a los valores adecuados. Puede establecer estas propiedades mediante la ventana Propiedades o mediante código.


Formas de proteger información confidencial

Muchas aplicaciones utilizan datos que deben estar disponible solamente a ciertos usuarios. Aquí tiene algunas sugerencias que puede utilizar para proteger información confidencial en Microsoft Forms:

•	Escriba código que haga invisible un control (y sus datos) a usuarios no autorizados. La propiedad Visible hace visible o invisible a un control. Para obtener más información a cerca de la propiedad Visible, haga clic en [image].

•	Escriba código que establezca el mismo color de primer plano y de fondo para el control cuando los usuarios no autorizados ejecutan la aplicación. Esto oculta la información a los usuarios no autorizados. Las propiedades ForeColor y BackColor determinan el color de primer plano y el color de segundo plano. Para obtener más información acerca de la propiedad ForeColor, haga clic en [image]. Para obtener más información acerca de la propiedad BackColor, haga clic en [image].

•	Deshabilite el control cuando usuarios no autorizados ejecuten la aplicación. La propiedad Enabled determina cuándo está deshabilitado un control. Para obtener más información acerca de la propiedad Enabled, haga clic en [image].

•	Solicite una contraseña para tener acceso a la aplicación o a un control específico. Puede utilizar marcadores de posición a medida que el usuario escribe cada carácter. La propiedad PasswordChar define los caracteres de los marcadores de posición. Para obtener más información acerca de la propiedad PasswordChar, haga clic en [image].

Nota   Utilizar contraseñas o cualquiera de las técnicas enumeradas pueden mejorar la seguridad de su aplicación, pero no garantiza la prevención del acceso no autorizado a sus datos.


Hacer que un control se ajuste automáticamente al tamaño de sus datos

En la ventana Propiedades, establezca la propiedad AutoSize a True.


Formas de cambiar la apariencia de un control

Microsoft Forms incluye varias propiedades que le permiten definir la apariencia de los controles en su aplicación:

•	ForeColor

•	BackColor, BackStyle

•	BorderColor, BorderStyle

•	SpecialEffect

ForeColor determina el color de primer plano. El color de primer plano se aplica a cualquier texto asociado con el control, como el título o el contenido del control.

BackColor y BackStyle se aplican al fondo del control. El fondo es el área dentro de los límites del control, como el área que rodea al texto en un control, pero no el borde del control. BackColor determina el color de segundo plano. BackStyle determina si el fondo es transparente. Un fondo transparente del control es útil si el diseño de su aplicación incluye una imagen como fondo principal y quiere ver esa imagen a través del control.

BorderColor, BorderStyle y SpecialEffect se aplican al borde del control. Puede utilizar BorderStyle o SpecialEffect para elegir un tipo de borde. Solamente una de estas dos propiedades se puede utilizar al cada vez. Cuando asigna un valor a una de estas propiedades, el sistema establece la otra propiedad a None. SpecialEffect le permite elegir uno de varios estilos de bordes, pero solamente le permite utilizar los colores del sistema para el borde. BorderStyle sólo permite un estilo de borde, pero le permite elegir cualquier color que sea un valor válido para BorderColor. BorderColor especifica el color del borde del control y solamente es válido cuando utiliza BorderStyle para crear el borde.


Lo que puede hacer con una imagen en un control Image

Un control Image no es por sí mismo una imagen; sino que contiene una imagen que está almacenada en un archivo distinto. No puede modificar la imagen con las propiedades del control Image, pero puede utilizarlas para especificar el modo en que la imagen se muestra en el control Image.

Una aplicación interesante del control Image es que puede utilizarlo como imagen de fondo en su aplicación. Para ello, haga que el tamaño del control Image sea el mismo que el del formulario. Después, puede colocar otros controles sobre el fondo.


Alinear texto en un control

1	En la ventana Propiedades, elija la propiedad TextAlign.

2	Haga clic en la flecha de la lista desplegable que hay junto al valor de la propiedad para mostrar una lista de opciones disponibles.

3	Elija una de las siguientes:

•	Izquierda para alinear el texto con el borde izquierdo del control.

•	Derecha para alinear el texto con el borde derecho del control.

•	Centro para centrar el texto con respecto a la longitud del control.

TextAlign está disponible para los controles ComboBox, Label y TextBox.


Mostrar u ocultar la cuadrícula

1	En el menú Herramientas, elija Opciones.

2	Seleccione la ficha General.

3	Realice uno de los pasos siguientes:

•	Para mostrar la cuadrícula, active la casilla de verificación Mostrar cuadrícula.

•	Para ocultar la cuadrícula, desactive la casilla de verificación Mostrar cuadrícula.

4	Haga clic en Aceptar.


Ajustar a la cuadrícula

1	Seleccione el control.

2	En el menú Formato, elija Ajustar a la cuadrícula.

Microsoft Forms ajusta el tamaño del control seleccionado de forma que cada esquina se alinee con un punto de la cuadrícula.


Ajustar a la selección

1	Seleccione el control.

2	En el menú Formato, elija Ajustar a la selección.

Microsoft Forms establece el tamaño del control de forma que tenga el tamaño adecuado para mostrar su imagen y cualquier texto asignado a la propiedad Caption o Text.


Hacer que los controles tengan el mismo tamaño

1	Seleccione todos los controles que desea que tengan el mismo tamaño.

2	Seleccione el control dominante.

3	En el menú Formato, elija Hacer del mismo tamaño.

4	En el menú en cascada, elija una de las siguientes opciones:

•	Ancho para hacer que todos los controles seleccionados tengan el mismo ancho que el control dominante.

•	Alto para hacer que todos los controles seleccionados tengan el mismo alto que el control dominante.

•	Ambos para hacer que todos los controles seleccionados tengan el mismo alto y el mismo ancho que el control dominante.


Alinear controles

1	Seleccione los controles que va a alinear.

2	Seleccione el control dominante.

3	En el menú Formato, elija Alinear.

4	En el menú en cascada, elija una de las siguientes opciones para alinear la parte especificada de cada control seleccionado con la misma parte del control dominante:

•	Lados izquierdos para alinear el borde izquierdo.

•	Centros para alinear el centro de cada control. Esto quiere decir que se traza una línea vertical en el centro del control dominante que contendría el centro de todos los controles seleccionados.

•	Lados derechos para alinear el borde derecho.

•	Lados superiores para alinear el borde superior.

•	Puntos medios para alinear el centro de cada control. Esto quiere decir que se traza una línea vertical en el centro del control dominante que también contendría el centro de todos los controles seleccionados.

•	Lados inferiores para alinear el borde inferior.

•	A la cuadrícula para alinear la esquina superior izquierda de cada control seleccionado con su punto de cuadrícula más cercano. Observe que esta opción no se basa en la posición del control dominante.

Nota   Cada comando del menú tiene una pequeña imagen que muestra cómo se alineará el control.


Ajustar el espacio horizontal y vertical entre controles

1	Seleccione los controles donde desea ajustar el espacio.

2	En el menú Formato, elija Espacio horizontal o Espacio vertical.

3	En el menú en cascada, elija una de las siguientes opciones:

•	Igualar para hacer que todos los espacios horizontales y verticales entre controles tengan el mismo tamaño. La cantidad de espacio horizontal y vertical variará dependiendo del área disponible para mostrar los controles y del ancho combinado de todos los controles.

•	Aumentar para aumentar el espacio entre controles en un bloque de cuadrícula.

•	Disminuir para disminuir el espacio entre controles en un bloque de cuadrícula.

•	Quitar para eliminar el espacio entre controles. Los controles no se superponen, pero son inmediatamente adyacentes entre sí.


Organizar botones

1	Seleccione los controles CommandButton que va a organizar.

2	En el menú Formato, elija Organizar botones.

3	En el menú en cascada, elija una de las siguientes opciones:

•	Abajo para colocar los botones en una fila comenzando en la esquina inferior izquierda del formulario y alinear las partes inferiores de todos los botones.

•	Derecha para colocar los botones en una columna comenzando en la esquina superior derecha del formulario y alinear los bordes derechos de todos los botones.

Después de organizar los botones, utilice Espacio horizontal o Espacio vertical en el menú Formato para ajustar el espacio entre los botones.

Sugerencia   Seleccione un tamaño de cuadrícula pequeño antes de elegir este comando para colocar los botones cerca de la parte inferior o derecha del formulario. Cambiar el tamaño de cuadrícula después de colocar los botones no cambia su posición.


Centrar los controles en un formulario

1	Seleccione los controles o grupos que va a centrar.

2	En el menú Formato, elija Centrar en el formulario.

3	En el menú en cascada, elija una de las siguientes opciones:

•	Horizontalmente

•	Verticalmente


Lo que puede hacer con grupos de controles

Un grupo es dos o más controles de un formulario que trata como una única unidad. Puede incluir cualquier control del formulario en un grupo. Una vez que los controles pertenecen a un grupo, puede trabajar con todo el grupo o puede seleccionar un único objeto.

Microsoft Forms proporciona muchas formas de trabajar con grupos y los controles de un grupo. Después de seleccionar un grupo, puede hacer lo siguiente:

•	Ajustar el tamaño de todos los controles del grupo al mismo tiempo. Para obtener más información, haga clic en [image].

•	Dividir el grupo de modo que cada control sea independiente del resto. Para obtener más información, haga clic en [image].

•	Mostrar el menú de acceso directo del grupo, el cual proporciona un acceso rápido a comandos que afectan al grupo. Para obtener más información, haga clic en [image].

•	Seleccionar un único control dentro del grupo sin dividirlo, lo que le permite modificar los valores de propiedad de ese control sin que afecte a ningún otro control del grupo. Para obtener más información, haga clic en [image].


Transparencia en Microsoft Forms

Microsoft Forms permite transparencia en dos áreas: el fondo de algunos controles y en los mapas de bits utilizados en ciertos controles.

La propiedad BackStyle determina si un control es transparente. Un control transparente le permite ver qué hay detrás de él en el formulario. Esto es útil si tiene un fondo decorativo en el formulario y desea minimizar la cantidad de ese fondo que queda oculto detrás de los controles. Para obtener más información sobre cómo hacer un control transparente, haga clic en [image].

Puede mostrar un mapa de bits en muchos controles en Microsoft Forms. Ciertos controles admiten mapas de bits transparentes, es decir, mapas de bits en los que uno o más colores de segundo plano es transparente. La transparencia de los mapas de bits no está controlada por ninguna propiedad del control; está controlada por el color del píxel inferior izquierdo de la imagen. Microsoft Forms no proporciona ninguna forma de modificar un mapa de bits y hacerlo transparente; para ello debe utilizar un editor de imágenes.

En Microsoft Forms, los mapas de bits son siempre transparentes en los siguientes controles:

•	CheckBox

•	CommandButton

•	Label

•	OptionButton

•	ToggleButton

Una imagen transparente a veces puede tener una apariencia borrosa. Si no le gusta esta apariencia, muestre la imagen en un control que soporte imágenes opacas.

Si utiliza un mapa de bits transparente en un control que no admita mapas de bits transparentes, el mapa de bits se mostrará correctamente, pero no será capaz de ver qué hay detrás de él. En Microsoft Forms, los siguientes controles no admiten mapas de bits transparentes:

•	La ventana del formulario (UserForm)

•	Frame

•	Image

•	MultiPage


¿Qué es un menú de acceso directo?

Un menú de acceso directo es un menú que aparece cuando hace clic con el botón secundario del mouse en un objeto. En Microsoft Forms, los siguientes objetos tienen menús de acceso directo:

•	El cuadro de herramientas, cada página del cuadro de herramientas y cada elemento de una página del cuadro de herramientas.

•	Controles individuales en un formulario.

•	Grupos de controles (grupos creados con el comando Agrupar).

•	Contenedores (como UserForm).

•	Objetos Page individuales en un control MultiPage.

•	Objetos Tab individuales en un control TabStrip.

•	Múltiples controles que no están en un grupo.

Los comandos del menú de acceso directo varían dependiendo del objeto que seleccione. Por ejemplo, si selecciona múltiples controles que no están en un grupo, el menú de acceso directo incluirá el comando Agrupar; el menú de acceso directo para el cuadro de herramientas no lo hará.

Para mostrar el menú de acceso directo de un control o de un contenedor, haga clic con el botón secundario del mouse en el objeto.

Para obtener más información acerca de cómo mostrar el menú de acceso directo para un control MultiPage o un objeto Page, haga clic en [image].

Para obtener más información acerca de cómo mostrar el menú de acceso directo para un control TabStrip o un objeto Tab, haga clic en [image].


Modos de colocar datos en un control ListBox o ComboBox

En un control ListBox o ComboBox con una única columna, el método AddItem proporciona una técnica efectiva para agregar una entrada individual a la lista. Sin embargo, en un control ListBox o ComboBox de múltiples columnas, las propiedades List y Column ofrecen otra técnica; puede cargar la lista desde una matriz bidimensional.


Lo que puede hacer con un control ListBox o ComboBox de múltiples columnas

Para controlar el ancho de las columnas de un control ListBox o ComboBox de múltiples columnas, puede especificar el ancho, en puntos, de todas las columnas en la propiedad ColumnWidths. Especificar cero para una columna concreta oculta esa columna de información en la pantalla.

Si desea ocultar al usuario todas menos una columna de un control ListBox o ComboBox, puede identificar la columna de información que va a mostrar utilizando la propiedad TextColumn.

Igualmente, puede controlar qué columna de valores se utiliza para el control cuando el usuario realiza una selección especificando el número de columna en la propiedad BoundColumn.


Agregar elementos a una lista utilizando la propiedad List o Column

1	Cree un control ListBox o ComboBox de múltiples columnas.

2	Cree una matriz bidimensional que contenga los elementos que desea colocar en la lista.

3	Establezca la propiedad ColumnCount del control ListBox o ComboBox para que coincida con el número de entradas de la lista.

4	Realice uno de los pasos siguientes:

•	Asigne la matriz como valor de la propiedad List. El contenido del control ListBox coincidirá exactamente con el contenido de la matriz.

•	Asigne la matriz como el valor de la propiedad Column. La propiedad Column transpone filas y columnas, de modo que cada fila del control ListBox coincida con la columna correspondiente de la matriz.


Mostrar u ocultar Información sobre herramientas

1	En el menú Herramientas, elija Opciones.

2	Seleccione la ficha General.

3	Realice uno de los pasos siguientes:

•	Para mostrar Información sobre herramientas, active la casilla de verificación Mostrar Información sobre herramientas.

•	Para ocultar Información sobre herramientas, desactive la casilla Mostrar Información sobre herramientas.


Modelo de objetos para Microsoft Forms

El modelo de objetos de Microsoft Forms incluye los siguientes tipos de objetos:

•	Controles

•	Colecciones

•	Objetos (dentro de colecciones)

Cada elemento del modelo de objeto de Microsoft Forms tiene alguna combinación de propiedades, eventos y métodos que puede utilizar para hacer que su aplicación funcione como desea.

Microsoft Forms tiene tres colecciones:

Colección Controls: contiene todos los controles de un formulario, objeto Frame o Page.

Colección Pages: contiene todos los objetos Page de un control MultiPage. Cada control MultiPage tiene su propia colección Pages distinta.

Colección Tabs: contiene todos los objetos Tab de un control TabStrip. Cada control TabStrip tiene su propia colección Tabs distinta.


Formas de crear un grupo de opciones

De forma predeterminada, todos los controles OptionButton de un contenedor (como un formulario, un control MultiPage o un control Frame) forman parte de un único grupo de opciones único. Esto quiere decir que seleccionar uno de los botones automáticamente establece todos los demás botones de opción del formulario a False.

Si desea incluir más de un grupo de opciones en el formulario, hay dos formas de crear grupos adicionales:

•	Utilice la propiedad GroupName para identificar botones relacionados.

•	Coloque los botones relacionados en un control Frame en el formulario.

El primer método es más recomendable que el segundo porque reduce el número de controles necesarios en la aplicación. Esto disminuye el espacio en disco requerido para su aplicación y también puede mejorar el rendimiento de la misma .

Nota   Un control TabStrip no es un contenedor. Los botones de opción en el control TabStrip se incluyen en el grupo de opciones del formulario. Puede utilizar la propiedad GroupName para crear un grupo de opciones a partir de los botones de un control TabStrip.


Crear un grupo de opciones utilizando la propiedad GroupName

1	Coloque todos los controles OptionButton necesarios en el formulario. Observe que los botones de opción en un control MultiPage o Frame formarán automáticamente un grupo de opciones.

2	Identifique los botones para cada grupo que desea crear.

3	Escriba un valor para la propiedad Name de cada control.

4	Para cada botón de un grupo, establezca el mismo valor en la propiedad GroupName.


Formas de hacer coincidir entradas en una lista

Microsoft Forms proporciona tres formas de hacer coincidir un valor introducido por el usuario con una entrada existente en una lista de un control ListBox o ComboBox:

•	Sin coincidencia no proporciona asistencia en la coincidencia de una entrada escrita por el usuario con una entrada en la lista.

•	Primera letra compara la letra escrita más recientemente con la primera letra de cada entrada de la lista. Se selecciona la primera coincidencia en la lista.

•	Completa compara la entrada escrita por el usuario e intenta encontrar una coincidencia exacta en una entrada de la lista.

La característica de coincidencia se restablece después de dos segundos (seis segundos en la versión de Lejano Oriente). Por ejemplo, si tiene una lista de 50 estados y escribe rápidamente "CO", encontrará "Colorado". Pero si escribe lentamente "CO", encontrará "Ohio" porque la búsqueda automática completa se restablece entre las letras.

Si elige la coincidencia Completa, es conveniente para ordenar alfabéticamente las entradas de la lista (para hacer esto puede utilizar la propiedad TextColumn). Si la lista no está ordenada alfabéticamente, la coincidencia podría no funcionar correctamente. Por ejemplo, si la lista incluye Alabama, Louisiana y Alaska en ese orden, entonces "Alabama" se considerará una coincidencia completa si el usuario escribe "ala". De hecho, este resultado es ambiguo porque hay dos entradas en la lista que podrían coincidir con la que escribió el usuario. Ordenar alfabéticamente las entradas elimina esta ambigüedad.


Utilizar el orden z para poner en capas los controles

Para colocar un control en el primer o el último lugar del orden z:

1	Seleccione los controles que desea cambiar de posición.

2	En el menú Formato, elija Ordenar.

3	En el menú en cascada, seleccione Traer al frente o Enviar al fondo.

Para ajustar un control una posición en el orden z:

1	Seleccione los controles que desea cambiar de posición.

2	En el menú Formato, elija Ordenar.

3	En el menú en cascada, seleccione Traer al frente o Enviar al fondo.

Nota   No puede deshacer o rehacer comandos que trabajen con niveles, como Enviar al fondo o Traer al frente. Por ejemplo, si selecciona un objeto y hace clic en Enviar atrás en el menú de acceso directo, no podrá deshacer o rehacer esa acción.

Las opciones de menú Traer al frente, Traer adelante, Enviar al fondo y Enviar atrás le permiten cambiar el orden z de un control relativo a otros controles. Si el formulario incluye algún control ListBox, Frame o MultiPage, estos controles se mueven automáticamente tan cerca como sea posible a la parte superior de la pila. Por ejemplo, aplicar Enviar atrás a un control ListBox, Frame o MultiPage mueve el debajo de otro control ListBox, Frame o MultiPage, pero no lo moverá debajo de cualquier otro tipo de control de la pila. De modo parecido, aplicar Traer adelante a un control distinto de un control ListBox, Frame o MultiPage moverá el control cerca de la parte superior de la pila, pero no lo moverá encima de un control ListBox, Frame o MultiPage de la pila.

Visualmente, esto quiere decir que si un control ListBox, Frame o MultiPage y cualquier otro control de  Microsoft Forms están en la misma ubicación en un formulario, el control ListBox, Frame o MultiPage siempre aparecerá encima del otro control. Si un control ListBox, Frame o MultiPage está en la misma ubicación que otro control ListBox, Frame o MultiPage, el orden z de lso controles determinan qué control aparece encima de otro.


Crear un control transparente

1	Coloque el control básico en el formulario.

2	Vea las propiedades del control.

3	Establezca la propiedad BackStyle a Transparent.

4	Si el control permite la propiedad BorderStyle, establézcala a None.

Nota   Cuando hace transparente un control, el color de segundo plano no se muestra, por lo que la propiedad BackColor se pasa por alto. Sin embargo, el valor de la propiedad BackColor no cambia cuando un control es transparente.


Eliminar un mapa de bits de un control

En la ventana Propiedades:

1	Resalte el valor de la propiedad Picture (la palabra "bitmap").

2	Presione SUPR.

O bien, en código:

•	Escriba la siguiente instrucción: Object.Picture = LoadPicture("")


Asignar un mapa de bits a un control

En la ventana Propiedades:

1	Elija la propiedad Picture.

2	En el cuadro de diálogo Picture, escriba el nombre de la imagen y su ubicación.

Si la imagen es mayor que el control, Microsoft Forms escala la imagen para ajustarla al tamaño del control, sin tener en cuenta si se ha asignado la imagen mediante la ventana Propiedades o mediante código. La propiedad PictureAlignment determina cómo está alineado dentro del control.


Formas de alinear una imagen en un control

La propiedad Picture asigna un mapa de bits u otra imagen a un control. Después de haber asignado la imagen al control, puede realizar cualquiera de los pasos siguientes para alinear la imagen en el control:

•	Utilice la propiedad PictureAlignment para centrar la imagen dentro del control Image o alinear cualquier esquina de la imagen con la correspondiente esquina del control Image.

•	Utilice la propiedad PictureSizeMode para recortar, estirar o hacer zoom a la imagen dentro del control Image. Estirar puede distorsionar la imagen, pero hacer zoom no lo hará.

•	Utilice la propiedad PictureTiling para mostrar múltiples copias de la imagen dentro del control Image.


Seleccionar el tamaño de cuadrícula

1	En el menú Herramientas, elija Opciones.

2	El cuadro de diálogo Opciones, elija la ficha General.

3	En el grupo Configuración de cuadrícula de formularios, especifique el tamaño que desea para cada bloque de cuadrícula. Especificar números pequeños da como resultado bloques de cuadrícula más pequeños.

Sugerencia   Si utiliza el comando Organizar botones para colocar botones de comando en su aplicación, pruebe con unos valores de cuadrícula pequeños. Esto le permitirá colocar los botones más próximos al borde del formulario.


Crear un grupo de controles

1	En el formulario, seleccione cada control que desee incluir en el grupo.

2	En el menú Formato, elija Agrupar.


Ajustar el tamaño de todos los controles de un grupo

1	Seleccione el grupo.

Un rectángulo con controladores de tamaño alrededor del grupo indica que está seleccionado.

2	Haga clic en uno de los controladores y arrástrelo para cambiar el tamaño del rectángulo.

3	Suelte el botón del mouse.

El tamaño de cada control cambiará proporcionalmente a la forma en que cambió el rectángulo alrededor del grupo.


Dividir un grupo de controles

1	Seleccione el grupo.

2	En el menú Formato, elija Desagrupar.


Mostrar un menú de acceso directo de grupo

1	Seleccione el grupo.

2	Haga clic con el botón secundario del mouse en cualquier parte del rectángulo que rodea al grupo.

Sugerencia   Haga clic con el botón secundario del mouse en cualquier del grupo, pero no en el menú de acceso directo, para hacer que el menú de acceso directo desaparezca si no desea utilizar ninguno de los comandos del menú.


Seleccionar un control dentro de un grupo

1	Seleccione el grupo.

2	Seleccione un único control dentro del grupo. Los controladores de tamaño alrededor del grupo se hacen más claros y aparecen unos controladores más oscuros en el control seleccionado.

Puede cambiar el valor de las propiedades del control seleccionado. Cualquier cambio que haga afectará solamente al control seleccionado.

3	Cuando haya terminado de trabajar con el control seleccionado, haga clic en cualquier dentro del grupo, pero no en el control seleccionado. El grupo sigue estando seleccionado.

Puede seleccionar otro control del grupo o realizar otra tarea que necesite ejecutar.


Mostrar el menú de acceso directo para un control MultiPage o un objeto Page

1	Asegúrese de que el formulario no se está ejecutando.

2	Realice uno de los pasos siguientes:

•	Para mostrar el menú de acceso directo de un objeto Page individual, haga clic con el botón secundario del mouse en el título de la página adecuada.

•	Para mostrar el menú de acceso directo de un control MultiPage, haga clic con el botón secundario del mouse en el control, pero no en el título de cualquier objeto Page del control.


Mostrar el menú de acceso directo para un control TabStrip o un objeto Tab

1	Asegúrese de que el formulario no se está ejecutando.

2	Realice uno de los pasos siguientes:

•	Para mostrar el menú de acceso directo de un objeto Tab individual, seleccione la ficha adecuada.

Cuando la ficha está seleccionada, aparece alrededor de su título un rectángulo punteado.

Haga clic con el botón secundario del mouse en el título seleccionado.

•	Para mostrar el menú de acceso directo de un control TabStrip, haga clic con el botón secundario del mouse en cualquier lugar del control, pero no en el título de cualquier objeto Tab del control.


Controles activos y controles seleccionados

Todos los controles tienen un estado activo y un estado seleccionado. Cuando un control está activo, quiere decir que está trabajando con el contenido del control; cuando un control está seleccionado, quiere decir que está trabajando con el propio control.

La mayoría de los controles se seleccionan automáticamente cuando los coloca en el formulario. En modo de diseño, los cuadros de tamaño aparecen rodeando un borde del control cuando se selecciona el control. Si cancela la selección del control , lo puede volver a seleccionar haciendo clic en el control de nuevo.

Hacer clic en un control que está seleccionado coloca el control en el estado activo. En este estado, puede modificar directamente el título del control.

Tanto en el estado seleccionado como en el estado activo, puede utilizar SUPR, CTRL+X, y CTRL+C como teclas de método abreviado respectivamente para los comandos Borrar, Cortar y Copiar. En el estado seleccionado, estos comandos están disponibles en el menú contextual y afectarán al propio control. En el estado activo, estos comandos afectarán a cualquier texto seleccionado dentro del control; si no hay ningún texto seleccionado, estos comandos no tendrán ningún efecto. Estos comandos no están disponibles en el menú contextual de los controles activos.


Sugerencias para seleccionar múltiples controles

Puede seleccionar más de un control de tres formas:

•	MAYÚSCULAS+CLIC: Microsoft Forms crea un rectángulo de selección invisible alrededor de los controles seleccionados y coloca controladores de tamaño en todos los controles dentro del rectángulo.

•	CTRL+CLIC: los controladores de tamaño aparecen sólo en los controles seleccionados, no en los controles dentro del rectángulo de alrededor. Ocasionalmente, este método puede seleccionar controles adicionales que están cerca o son adyacentes a los controles seleccionados. En este caso, utilice el puntero Select Objects que se explica a continuación.

•	El puntero Seleccionar objetos en el Cuadro de herramientas: dibuja un rectángulo sobre los controles que desea seleccionar. Se seleccionarán todos los controles que caen dentro o sólo tocan el rectángulo.

Cuando selecciona múltiples controles, uno de los controles seleccionados pasa a ser la referencia para el resto de los controles, a éste se le llama control dominante.


Sugerencias para establecer el control dominante

Cuando selecciona múltiples controles puede establecer el control dominante de una de las siguientes formas:

•	MAYÚSCULAS+CLIC: El control dominante es el primer control que selecciona al utilizar MAYÚSCULAS+CLIC.

•	CTRL+CLIC: El control dominante es el último control que selecciona al utilizar CTRL+CLIC.

•	El puntero Seleccionar objetos en el Cuadro de herramientas: El control dominante es el más cercano al puntero del mouse cuando comienza a dibujar el rectángulo sobre los controles que desea seleccionar.

Si hace CTRL+CLIC por segunda vez en un control seleccionado, este control pasa a ser el control dominante.


Deshacer y Rehacer en Microsoft Forms

Microsoft Forms admite múltiples niveles de los comandos Deshacer y Rehacer. Esto quiere decir que puede deshacer una serie de acciones, no sólo una única acción.

CTRL+Z es la tecla de método abreviado para Deshacer y CTRL+Y es la tecla de método abreviado para Rehacer.

No puede deshacer o rehacer comandos que trabajen con niveles, como Enviar al fondo o Traer al frente. Por ejemplo, si selecciona un objeto y hace clic en Mover atrás en el menú de acceso directo, no podrá deshacer o rehacer esa acción.


Referencias ByVal en Microsoft Forms

La palabra clave ByVal en Microsoft Forms indica que un argumento se transfiere como un valor; este es el significado estándar de ByVal en Visual Basic. Sin embargo, en Microsoft Forms, puede utilizar ByVal con un objeto ReturnBoolean, ReturnEffect, ReturnInteger o ReturnString. Cuando lo hace, el valor transferido no es un simple tipo de datos; es un puntero al objeto.

Cuando se utiliza con estos objetos, ByVal hace referencia al objeto, no al método de transferencia de parámetros. Cada uno de los objetos enumerados anteriormente tienen una propiedad Value que se puede establecer. También puede transferir ese valor a o desde una función. Debido a que puede cambiar los valores de los miembros del objeto, eventos produce resultados coherentes con el comportamiento de ByRef, aunque la sintaxis del evento especifique que el parámetro es ByVal.

No es diferente asignar un valor a un argumento asociado con un objeto ReturnBoolean, ReturnEffect, ReturnInteger o ReturnString de establecer el valor de cualquier otro argumento. Por ejemplo, si la sintaxis del evento indica que un argumento Cancelar se utilizó con el objeto ReturnBoolean, la instrucción Cancel=True es válida, igual que con otro tipo de datos.


El cuadro de diálogo Cambiar nombre

Contiene los valores de las propiedades Accelerator, Caption y ControlTipText de la página o la ficha individual que tiene el enfoque. Contiene los valores de las propiedades Caption y ToolTipText de la página actual del cuadro de herramientas. Puede actualizar los valores de esas propiedades.

El usuario debe presionar una tecla de aceleración simultáneamente con la tecla ALT para establecer el enfoque en un control Page o Tab. El título es el texto en el área de la ficha de un control Page o Tab o la página actual del cuadro de herramientas. La propiedad ControlTipText es una breve descripción de un control que aparece cuando el usuario mantiene el puntero del mouse sobre un control sin hacer clic. La propiedad ToolTipText es una breve descripción de un control que aparece cuando el usuario mantiene el puntero del mouse sobre la página actual del cuadro de herramientas sin hacer clic.

Para establecer una tecla de aceleración para el objeto Page o Tab:

•	Escriba un único carácter para Accelerator.

Para cambiar el nombre del objeto Page o Tab:

•	Escriba un nuevo valor para Caption.

Para definir la propiedad ControlTipText para el objeto Page o Tab:

•	Escriba un nuevo valor para ControlTipText.

Para definir la propiedad ToolTipText para la página actual del cuadro de herramientas:

•	Escriba un nuevo valor para ToolTipText.

Nota   Haga clic en Aceptar para aplicar los nuevos valores a la página, ficha o página del cuadro de herramientas.


El cuadro de diálogo Orden de página /Orden de ficha

Para cambiar la posición de una página o ficha:

1	Seleccione el nombre del objeto Page o Tab que desea mover.

2	Elija Mover arriba o Mover abajo hasta que el elemento seleccionado esté en la posición deseada.

3	Cuando todos los elementos estén en el orden deseado, haga clic en Aceptar.


El cuadro de diálogo Controles adicionales

1	En la lista Controles disponibles, seleccione el control o los controles que desea agregar al cuadro de herramientas.

2	Haga clic en Aceptar.

Sugerencia   Puede filtrar la lista Controles disponibles seleccionando opciones del grupo Mostrar.


El cuadro de diálogo Personalizar control

Contiene la propiedad ControlTipText y el icono que representa este control en el cuadro de herramientas. Con este cuadro de diálogo puede definir o cambiar la propiedad ControlTipText asociada con este control, así como cambiar el icono que se muestra en el cuadro de herramientas.

Para definir o modificar la propiedad ControlTipText:

•	Escriba un nuevo valor para ControlTipText.

Para modificar el icono:

1	Elija el botón de comando Modificar imagen.

2	Utilice el Editor de imágenes para cambiar el icono como sea necesario.

Para cargar otro icono:

1	Elija el botón de comando Cargar imagen.

2	En el cuadro de diálogo común, seleccione un archivo de imagen.

3	Haga clic en Aceptar para aplicar los nuevos valores.


Item (Ejemplo del método)

El siguiente ejemplo utiliza el método Item para tener acceso a miembros individuales de las colecciones Controls y Pages. El usuario elige un botón de opción para la colección Controls o para el control MultiPage y hace clic en el control CommandButton. Se devuelve el nombre del control apropiado en Label.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control Label llamado Label1.

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un control MultiPage llamado MultiPage1.

Dim MiControl As Object

Dim ÍndiceControles As Integer

Private Sub CommandButton1_Click()

    If OptionButton1.Value = True Then

        'Procesa la colección Controls de UserForm

        Set MiControl = Controls.Item(ÍndiceControles)

        Label1.Caption = MiControl.Name

        'Prepara el índice para el siguiente control en Userform

        ÍndiceControles = ÍndiceControles + 1

        If ÍndiceControles >= Controls.Count Then

            ÍndiceControles = 0

        End If

    ElseIf OptionButton2.Value = True Then

        'Procesa el objeto Page actual de la colección Pages

        Set MiControl = MultiPage1.Pages.Item(MultiPage1.Value)

        Label1.Caption = MiControl.Name

    End If

End Sub

Private Sub UserForm_Initialize()

    ÍndiceControles = 0

    'TabsIndex = 0

    OptionButton1.Caption = "Colección Controls"

    OptionButton2.Caption = "Colección Pages"

    OptionButton1.Value = True

    CommandButton1.Caption = "Obtener nombre de miembro"

End Sub


Object (Ejemplo de la propiedad)

Suponga que un control nuevo tiene una propiedad Top que es diferente de la propiedad Top estándar de Microsoft Forms. Puede utilizar cualquiera, basándose en la sintaxis:

•	control.Top utiliza la propiedad Top estándar.

•	control.Object.Top utiliza la propiedad Top del control agregado.


TabStop (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad TabStop para controlar si un usuario puede presionar TAB para mover el enfoque a un control concreto. El usuario presiona el TAB para mover el enfoque entre los controles del formulario, y después hace clic en el control ToggleButton para cambiar la propiedad TabStop de CommandButton1. Cuando la propiedad TabStop es False, CommandButton1 no recibirá el enfoque utilizando el TAB.

0	Para utilizar este ejemplo, copie este código de ejemplo a la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control ToggleButton llamado ToggleButton1.

•	Uno o más controles distintos, como un control OptionButton o ListBox.

Private Sub CommandButton1_Click()

    MsgBox "Hizo clic en CommandButton1."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1 = True Then

        CommandButton1.TabStop = True

        ToggleButton1.Caption = "TabStop activada"

    Else

        CommandButton1.TabStop = False

        ToggleButton1.Caption = "TabStop desactivada"

    End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Mostrar mensaje"

    ToggleButton1.Caption = "TabStop activada"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

End Sub


TakeFocusOnClick (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad TakeFocusOnClick para controlar si un control CommandButton recibe el enfoque cuando el usuario hace clic en él. El usuario hace clic en un control distinto de CommandButton1 y después hace clic en CommandButton1. Si la propiedad TakeFocusOnClick es True, CommandButton1 recibe el enfoque después de que se hace clic. El usuario puede cambiar el valor de la propiedad TakeFocusOnClick haciendo clic en el control ToggleButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control ToggleButton llamado ToggleButton1.

•	Uno o más controles distintos, como un control OptionButton o ListBox.

Private Sub CommandButton1_Click()

    MsgBox "Compruebe CommandButton1 para ver si tiene el enfoque."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1 = True Then

        CommandButton1.TakeFocusOnClick = True

        ToggleButton1.Caption = "TakeFocusOnClick activada"

    Else

        CommandButton1.TakeFocusOnClick = False

        ToggleButton1.Caption = "TakeFocusOnClick desactivada"

    End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Mostrar mensaje"

    ToggleButton1.Caption = "TakeFocusOnClick activada"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

End Sub


MatchEntry (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad MatchEntry para demostrar la coincidencia de caracteres que está disponible para los controles ComboBox y ListBox. En este ejemplo, el usuario puede establecer el tipo de coincidencia con los controles OptionButton y después escribir en el control ComboBox para especificar un elemento de la lista.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Tres controles OptionButton llamados OptionButton1 hasta OptionButton3.

•	Un control ComboBox llamado ComboBox1.

Private Sub OptionButton1_Click()

    ComboBox1.MatchEntry = fmMatchEntryNone

End Sub

Private Sub OptionButton2_Click()

    ComboBox1.MatchEntry = fmMatchEntryFirstLetter

End Sub

Private Sub OptionButton3_Click()

        ComboBox1.MatchEntry = fmMatchEntryComplete

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 9

        ComboBox1.AddItem "Opción " & i

    Next i

    ComboBox1.AddItem "Opcoholic"

    OptionButton1.Caption = "Sin coincidencia"

    OptionButton1.Value = True

    OptionButton2.Caption = "Coincidencia básica"

    OptionButton3.Caption = "Coincidencia extendida"

End Sub


MatchFound, MatchRequired (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades MatchFound y MatchRequired para demostrar la coincidencia de caracteres adicionales para un control ComboBox. La comprobación de coincidencia se produce en el evento Change.

En este ejemplo, el usuario especifica si la parte de texto de un control ComboBox debe coincidir con uno de los elementos enumerados en el control ComboBox. El usuario puede especificar si la coincidencia se requiere utilizando un control CheckBox y después escribe en el control ComboBox para especificar un elemento de la lista.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ComboBox llamado ComboBox1.

•	un control CheckBox llamado CheckBox1.

Private Sub CheckBox1_Click()

    If CheckBox1.Value = True Then

        ComboBox1.MatchRequired = True

        MsgBox "Para mover el enfoque del control ComboBox, debe hacer coincidir una entrada de la lista o presionar ESC."

    Else

        ComboBox1.MatchRequired = False

        MsgBox "Para mover el enfoque del control ComboBox, sólo muévase o haga clic en otro control. La coincidencia es opcional."

    End If

End Sub

Private Sub ComboBox1_Change()

    If ComboBox1.MatchRequired = True Then

    'MSForms controla este caso automáticamente

    Else

        If ComboBox1.MatchFound = True Then

            MsgBox "Coincidencia encontrada; coincidencia opcional."

        Else

            MsgBox "Coincidencia no encontrada; coincidencia opcional."

        End If

    End If

End Sub

Private Sub UserForm_Initialize()

Dim i As Integer

For i = 1 To 9

    ComboBox1.AddItem "Opción " & i

Next i

ComboBox1.AddItem "Opcoholic"

CheckBox1.Caption = "MatchRequired"

CheckBox1.Value = True

End Sub


MultiSelect, Selected (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades MultiSelect y Selected para demostrar cómo el usuario puede seleccionar uno o más elementos de un control ListBox. El usuario especifica un método de selección eligiendo un botón de opción y después selecciona un elemento o elementos del control ListBox. El usuario puede mostrar los elementos seleccionados en un segundo control ListBox haciendo clic en el control CommandButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles ListBox llamados ListBox1 y ListBox2.

•	Un control CommandButton llamado CommandButton1.

•	Tres controles OptionButton llamados OptionButton1 hasta OptionButton3.

Dim i As Integer

Private Sub CommandButton1_Click()

    ListBox2.Clear

    For i = 0 To 9

        If ListBox1.Selected(i) = True Then

            ListBox2.AddItem ListBox1.List(i)

        End If

    Next i

End Sub

Private Sub OptionButton1_Click()

    ListBox1.MultiSelect = fmMultiSelectSingle

End Sub

Private Sub OptionButton2_Click()

    ListBox1.MultiSelect = fmMultiSelectMulti

End Sub

Private Sub OptionButton3_Click()

    ListBox1.MultiSelect = fmMultiSelectExtended

End Sub

Private Sub UserForm_Initialize()

    For i = 0 To 9

        ListBox1.AddItem "Opción " & (ListBox1.ListCount + 1)

    Next i

    OptionButton1.Caption = "Selección sencilla"

    ListBox1.MultiSelect = fmMultiSelectSingle

    OptionButton1.Value = True

    OptionButton2.Caption = "Selección múltiple"

    OptionButton3.Caption = "Selección extendida"

    CommandButton1.Caption = "Mostrar selecciones"

    CommandButton1.AutoSize = True

End Sub


Style (Ejemplo de la propiedad para un control ComboBox)

El siguiente ejemplo utiliza la propiedad Style para cambiar el efecto de escribir en el área de texto de un control ComboBox. El usuario elige un estilo seleccionándolo de un control OptionButton y después escribe en el control ComboBox para seleccionar un elemento. Cuando la propiedad Style es fmStyleDropDownList, el usuario debe elegir un elemento de la lista desplegable. Cuando la propiedad Style es fmStyleDropDownCombo, el usuario puede escribir en el área de texto para especificar un elemento de la lista desplegable.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un control ComboBox llamado ComboBox1.

Private Sub OptionButton1_Click()

    ComboBox1.Style = fmStyleDropDownCombo

End Sub

Private Sub OptionButton2_Click()

    ComboBox1.Style = fmStyleDropDownList

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 10

        ComboBox1.AddItem "Opción " & i

    Next i

    OptionButton1.Caption = "Seleccionar como ComboBox"

    OptionButton1.Value = True

    ComboBox1.Style = fmStyleDropDownCombo

    OptionButton2.Caption = "Seleccionar como ListBox"

End Sub


Style (Ejemplo de la propiedad para un control MultiPage y TabStrip)

El siguiente ejemplo utiliza la propiedad Style para especificar la apariencia de las fichas en un control MultiPage y TabStrip. Este ejemplo también demuestra el uso de un control Label. El usuario elige un estilo seleccionando un control OptionButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Tres controles OptionButton llamados OptionButton1 hasta OptionButton3.

•	Un control MultiPage llamado MultiPage1.

•	Un control TabStrip llamado TabStrip1.

•	Cualquier control dentro de un control TabStrip.

•	Cualquier control en cada página de un control MultiPage.

Private Sub OptionButton1_Click()

    MultiPage1.Style = fmTabStyleTabs

    TabStrip1.Style = fmTabStyleTabs

End Sub

Private Sub OptionButton2_Click()

    'Observe que los bordes de la página son invisibles

    MultiPage1.Style = fmTabStyleButtons

    TabStrip1.Style = fmTabStyleButtons

End Sub

Private Sub OptionButton3_Click()

    'Observe que los bordes de la página son invisibles y el cuerpo

    'de la página empieza donde aparecen normalmente las fichas.

    MultiPage1.Style = fmTabStyleNone

    TabStrip1.Style = fmTabStyleNone

End Sub

Private Sub UserForm_Initialize()

    Label1.Caption = "Estilo de Página/Ficha"

    OptionButton1.Caption = "Fichas"

    OptionButton1.Value = True

    MultiPage1.Style = fmTabStyleTabs

    TabStrip1.Style = fmTabStyleTabs

    OptionButton2.Caption = "Botones"

    OptionButton3.Caption = "Sin fichas ni botones"

End Sub


OldLeft, OldTop, OldHeight, OldWidth (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades OldLeft, OldTop, OldHeight y OldWidth dentro del evento Layout para mantener un control en su posición y tamaño actual. El usuario hace clic en el control CommandButton con la etiqueta Mover ComboBox para mover el control y después responde a un cuadro de mensaje. El usuario puede hacer clic en el control CommandButton con la etiqueta Restaurar ComboBox para restaurar el control para otra repetición.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

•	Un control ComboBox llamado ComboBox1.

Dim Inicializar As Integer

Dim CombinadoIzquierda, CombinadoSuperior, CombinadoAncho, CombinadoAlto As Integer

Private Sub UserForm_Initialize()

    Inicializar = 0

    CommandButton1.Caption = "Mover ComboBox"

    CommandButton2.Caption = "Restaurar ComboBox"

    'Información para restaurar el control ComboBox

    CombinadoIzquierda = ComboBox1.Left

    CombinadoSuperior = ComboBox1.Top

    CombinadoAncho = ComboBox1.Width

    CombinadoAlto = ComboBox1.Height

End Sub

Private Sub CommandButton1_Click()

        ComboBox1.Move 0, 0, , , True

End Sub

Private Sub UserForm_Layout()

    Dim MiControl As Control

    Dim CuadroMensajeResultado As Integer

    If Inicializar = 0 Then   'Elimina MsgBox en el evento Layout inicial.

        Inicializar = 1

        Exit Sub

    End If

    CuadroMensajeResultado = MsgBox("En el evento Layout - ¿Desea mover?", vbYesNo)

    If CuadroMensajeResultado = vbNo Then

        ComboBox1.Move ComboBox1.OldLeft, ComboBox1.OldTop, ComboBox1.OldWidth, ComboBox1.OldHeight

    End If

End Sub

Private Sub CommandButton2_Click()

    ComboBox1.Move CombinadoIzquierda, CombinadoSuperior, CombinadoAncho, CombinadoAlto

    'OldLeft, OldTop, OldWidth y OldHeight aquí no se reconocen.

    'La siguiente instrucción , si no está como comentario, produce un error en tiempo de ejecución.

    'ComboBox1.Move ComboBox1.OldLeft, ComboBox1.OldTop, ComboBox1.OldWidth, ComboBox1.OldHeight

End Sub


TabFixedHeight, TabFixedWidth (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades TabFixedHeight y TabFixedWidth para establecer el tamaño de las fichas utilizadas en los controles MultiPage y TabStrip. El usuario hace clic en los controles SpinButton para ajustar el alto y el ancho de las fichas incluidas en los controles MultiPage y TabStrip.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control MultiPage llamado MultiPage1.

•	Un control TabStrip llamado TabStrip1.

•	Un control Label llamado Label1 para el ancho del control.

•	Un control SpinButton llamado SpinButton1 para el ancho del control.

•	Un control TextBox llamado TextBox1 para el ancho del control.

•	Un control Label llamado Label2 para el alto del control.

•	Un control SpinButton llamado SpinButton2 para el alto del control.

•	Un control TextBox llamado TextBox2 para el alto del control.

Private Sub UpdateTabWidth()

    TextBox1.Text = SpinButton1.Value

    TabStrip1.TabFixedWidth = SpinButton1.Value

    MultiPage1.TabFixedWidth = SpinButton1.Value

End Sub

Private Sub UpdateTabHeight()

    TextBox2.Text = SpinButton2.Value

    TabStrip1.TabFixedHeight = SpinButton2.Value

    MultiPage1.TabFixedHeight = SpinButton2.Value

End Sub

Private Sub UserForm_Initialize()

    MultiPage1.Style = fmTabStyleButtons

    Label1.Caption = "Ancho de la ficha"

    SpinButton1.Min = 0

    SpinButton1.Max = TabStrip1.Width / TabStrip1.Tabs.Count

    SpinButton1.Value = 0

    TextBox1.Locked = True

    UpdateTabWidth

    Label2.Caption = "Alto de la ficha"

    SpinButton2.Min = 0

    SpinButton2.Max = TabStrip1.Height

    SpinButton2.Value = 0

    TextBox2.Locked = True

    UpdateTabHeight

End Sub

Private Sub SpinButton1_SpinDown()

    UpdateTabWidth

End Sub

Private Sub SpinButton1_SpinUp()

    UpdateTabWidth

End Sub

Private Sub SpinButton2_SpinDown()

    UpdateTabHeight

End Sub

Private Sub SpinButton2_SpinUp()

    UpdateTabHeight

End Sub


TabIndex (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad TabIndex para mostrar y establecer el orden de tabulación de controles individuales. El usuario puede presionar TAB para buscar el siguiente control en el orden de tabulación y para mostrar la propiedad TabIndex de ese control. El usuario puede también hacer clic en un control para mostrar la propiedad TabIndex. El usuario puede cambiar la propiedad TabIndex de un control especificando un valor de índice nuevo en el control TextBox y haciendo clic en CommandButton3. Cambiar la propiedad TabIndex de un control también actualiza la propiedad TabIndex para los otros controles del objeto Frame.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Un control TextBox llamado TextBox1.

•	Un control Frame llamado Frame1.

•	Un control TextBox en el objeto Frame llamado TextBox2.

•	Dos controles CommandButton en el objeto Frame llamados CommandButton1 y CommandButton2.

•	Un control ScrollBar en el objeto Frame llamado ScrollBar1.

•	Un control CommandButton (fuera del objeto Frame) llamado CommandButton3.

Private Sub MoveToFront()

    Dim i, Temp As Integer

    Temp = Frame1.ActiveControl.TabIndex

    For i = 0 To Temp - 1

        Frame1.Controls.Item(i).TabIndex = i + 1

    Next i

    Frame1.ActiveControl.TabIndex = 0

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton3_Click()

    Dim i, Temp As Integer

    If IsNumeric(TextBox1.Text) Then

        Temp = Val(TextBox1.Text)

        If Temp >= Frame1.Controls.Count Or Temp < 0 Then

            'Entrada fuera del intervalo; mover el control al principio del orden de tabulación.

            MoveToFront

        ElseIf Temp > Frame1.ActiveControl.TabIndex Then

            'Mover la entrada hacia abajo en la lista

            For i = Frame1.ActiveControl.TabIndex + 1 To Temp

                Frame1.Controls.Item(i).TabIndex = i - 1

            Next i

            Frame1.ActiveControl.TabIndex = Temp

            TextBox1.Text = Frame1.ActiveControl.TabIndex

        Else

            'Mover la entrada hacia arriba en la lista

            For i = Frame1.ActiveControl.TabIndex - 1 To Temp

                Frame1.Controls.Item(i).TabIndex = i + 1

            Next i

            Frame1.ActiveControl.TabIndex = Temp

            TextBox1.Text = Frame1.ActiveControl.TabIndex

        End If

    Else

        'Entrada de texto; mover el control al principio del orden de tabulación

        MoveToFront

    End If

End Sub

Private Sub UserForm_Initialize()

    Label1.Caption = "TabIndex"

    Frame1.Controls(0).SetFocus

    TextBox1.Text = Frame1.ActiveControl.TabIndex

    Frame1.Cycle = fmCycleCurrentForm

    CommandButton3.Caption = "Establecer TabIndex"

    CommandButton3.TakeFocusOnClick = False

End Sub

Private Sub TextBox2_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton1_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton2_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub ScrollBar1_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub


Layout (Evento), LayoutEffect (Ejemplo de la propiedad)

El siguiente ejemplo mueve un control seleccionado de un formulario con el método Move y utiliza el evento Layout y la propiedad LayoutEffect para identificar el control que se ha movido (y que ha cambiado la distribución del objeto UserForm). El usuario hace clic en un control para moverlo y después hace clic en el control CommandButton. Un cuadro de mensaje muestra el nombre del control que se ha movido.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Un control ComboBox llamado ComboBox1.

•	Un control OptionButton llamado OptionButton1.

•	Un control CommandButton llamado CommandButton1.

•	Un control ToggleButton llamado ToggleButton1.

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Mover el control actual"

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    ToggleButton1.Caption = "Utilizar el evento Layout"

    ToggleButton1.Value = True

End Sub

Private Sub CommandButton1_Click()

    If ActiveControl.Name = "ToggleButton1" Then

        'Mantenerlo fijo

    Else

        'Mover el control, utilizando el evento Layout cuando ToggleButton1.Value es True

        ActiveControl.Move 0, 0, , , ToggleButton1.Value

    End If

End Sub

Private Sub UserForm_Layout()

    Dim MiControl As Control

    MsgBox "En el evento Layout"

    'Encontrar el control que se está moviendo.

    For Each MiControl In Controls

        If MiControl.LayoutEffect = fmLayoutEffectInitiate Then

            MsgBox MiControl.Name & " se está moviendo."

            Exit For

        End If

    Next

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "Utilizar el evento Layout"

    Else

        ToggleButton1.Caption = "No utilizar el evento Layout"

    End If

End Sub


Tag (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad Tag para almacenar información adicional acerca de cada control del objeto UserForm. El usuario hace clic en un control y después hace clic en el control CommandButton. El contenido de la propiedad Tag del control adecuado se devuelve en el control TextBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Un control CommandButton llamado CommandButton1.

•	Un control ScrollBar llamado ScrollBar1.

•	Un control ComboBox llamado ComboBox1.

•	Un control MultiPage llamado MultiPage1.

Private Sub CommandButton1_Click()

    TextBox1.Text = ActiveControl.Tag

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Locked = True

    TextBox1.Tag = "Mostrar el área para las propiedades Tag."

    TextBox1.AutoSize = True

    CommandButton1.Caption = "Mostrar la propiedad Tag del control actual."

    CommandButton1.AutoSize = True

    CommandButton1.WordWrap = True

    CommandButton1.TakeFocusOnClick = False

    CommandButton1.Tag = "Muestra el contenido de la propiedad tag del control que tiene el enfoque."

    ComboBox1.Style = fmStyleDropDownList

    ComboBox1.Tag = "El estilo del control ComboBox es el del control ListBox."

    ScrollBar1.Max = 100

    ScrollBar1.Min = -273

    ScrollBar1.Tag = "Máximo = " & ScrollBar1.Max & " , Mínimo = " & ScrollBar1.Min

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    MultiPage1.Tag = "Este control MultiPage tiene " & MultiPage1.Pages.Count & " páginas."

End Sub


TopIndex (Ejemplo de la propiedad)

El siguiente ejemplo identifica el elemento mostrado en la parte superior de un control ListBox y el elemento que tiene el enfoque dentro del control ListBox. Este ejemplo utiliza la propiedad TopIndex para identificar el elemento mostrado en la parte superior del control ListBox y la propiedad ListIndex para identificar el elemento que tiene el enfoque. El usuario selecciona un elemento en el control ListBox. Los valores mostrados de las propiedades TopIndex y ListIndex se actualizan cuando el usuario selecciona un elemento o cuando el usuario hace clic en el control CommandButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Un control TextBox llamado TextBox1.

•	Un control Label llamado Label2.

•	Un control TextBox llamado TextBox2.

•	Un control CommandButton llamado CommandButton1.

•	Un control ListBox llamado ListBox1.

Private Sub CommandButton1_Click()

    ListBox1.TopIndex = ListBox1.ListIndex

    TextBox1.Text = ListBox1.TopIndex

    TextBox2.Text = ListBox1.ListIndex

End Sub

Private Sub ListBox1_Change()

    TextBox1.Text = ListBox1.TopIndex

    TextBox2.Text = ListBox1.ListIndex

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 0 To 24

        ListBox1.AddItem "Opción " & (i + 1)

    Next i

    ListBox1.Height = 66

    CommandButton1.Caption = "Mover a la parte superior de la lista"

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    Label1.Caption = "Índice del elemento superior"

    TextBox1.Text = ListBox1.TopIndex

    Label2. Caption = "Índice del elemento actual"

    Label2.AutoSize = True

    Label2.WordWrap = False

    TextBox2.Text = ListBox1.ListIndex

End Sub


TripleState (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad TripleState para permitir Null como un valor válido de un control CheckBox y ToggleButton. El usuario controla el valor de la propiedad TripleState mediante ToggleButton2. El usuario puede establecer el valor de un control CheckBox o ToggleButton basándose en el valor de la propiedad TripleState.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CheckBox llamado CheckBox1.

•	Un control ToggleButton llamado ToggleButton1.

•	Un control ToggleButton llamado ToggleButton2.

Private Sub UserForm_Initialize()

    CheckBox1.Caption = "El valor es True"

    CheckBox1.Value = True

    CheckBox1.TripleState = False

    ToggleButton1.Caption = "El valor es True"

    ToggleButton1.Value = True

    ToggleButton1.TripleState = False

    ToggleButton2.Value = False

    ToggleButton2.Caption = "Triple State desactivada"

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        ToggleButton2.Caption = "Triple State activada"

        CheckBox1.TripleState = True

        ToggleButton1.TripleState = True

    Else

        ToggleButton2.Caption = "Triple State desactivada"

        CheckBox1.TripleState = False

        ToggleButton1.TripleState = False

    End If

End Sub

Private Sub CheckBox1_Change()

    If IsNull(CheckBox1.Value) Then

        CheckBox1.Caption = "El valor es Null"

    ElseIf CheckBox1.Value = False Then

        CheckBox1.Caption = "El valor es False"

    ElseIf CheckBox1.Value = True Then

        CheckBox1.Caption = "El valor es True"

    End If

End Sub

Private Sub ToggleButton1_Change()

    If IsNull(ToggleButton1.Value) Then

        ToggleButton1.Caption = "El valor es Null"

    ElseIf ToggleButton1.Value = False Then

        ToggleButton1.Caption = "El valor es False"

    ElseIf ToggleButton1.Value = True Then

        ToggleButton1.Caption = "El valor es True"

    End If

End Sub


Value (Ejemplo de la propiedad)

El siguiente ejemplo demuestra los valores que pueden tener los diferentes tipos de controles mostrando la propiedad Value de un control seleccionado. El usuario elige un control presionando TAB o haciendo clic en el control. Dependiendo del tipo de control, el usuario también puede especificar el valor de un control escribiendo en el área de texto del control, haciendo clic una o más veces en el control o seleccionando un elemento, página o ficha dentro del control. El usuario puede mostrar el valor del control seleccionado haciendo clic en el control CommandButton adecuadamente etiquetado.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control TextBox llamado TextBox1.

•	Un control CheckBox llamado CheckBox1.

•	Un control ComboBox llamado ComboBox1.

•	Un control CommandButton llamado CommandButton2.

•	Un control ListBox llamado ListBox1.

•	Un control MultiPage llamado MultiPage1.

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un control ScrollBar llamado ScrollBar1.

•	Un control SpinButton llamado SpinButton1.

•	Un control TabStrip llamado TabStrip1.

•	Un control TextBox llamado TextBox2.

•	Un control ToggleButton llamado ToggleButton1.

Dim i As Integer

Private Sub CommandButton1_Click()

    TextBox1.Text = "El valor de " & ActiveControl.Name & " es " & ActiveControl.Value

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Obtener el valor del control actual "

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    CommandButton1.TabStop = False

    TextBox1.AutoSize = True

    For i = 0 To 10

        ComboBox1.AddItem "Opción " & (i + 1)

        ListBox1.AddItem "Selección " & (100 - i)

    Next i

    CheckBox1.TripleState = True

    ToggleButton1.TripleState = True

    TextBox2.Text = "Escriba aquí un texto."

End Sub


KeyPress (Ejemplo del evento)

El siguiente ejemplo utiliza el evento KeyPress para copiar pulsaciones de teclas de un control TextBox a un segundo control TextBox. El usuario escribe en el control TextBox marcado adecuadamente.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles TextBox llamados TextBox1 y TextBox2.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    TextBox2.Text = TextBox2.Text & Chr(KeyAscii)

    'Para controlar las combinaciones de teclado (utilizando SHIFT, CTRL, ALT y

    'otra tecla), o TAB, o ENTER utilice el evento KeyDown o KeyUp.

End Sub

Private Sub UserForm_Initialize()

    Move 0, 0, 570, 380

    TextBox1.Move 30, 40, 220, 160

    TextBox1.MultiLine = True

    TextBox1.WordWrap = True

    TextBox1.Text = "Escriba aquí un texto."

    TextBox1.EnterKeyBehavior = True

    TextBox2.Move 298, 40, 220, 160

    TextBox2.MultiLine = True

    TextBox2.WordWrap = True

    TextBox2.Text = "El texto escrito se copia aquí."

    TextBox2.Locked = True

 End Sub


Zoom (Ejemplo del evento)

El siguiente ejemplo utiliza el evento Zoom para evaluar el nuevo valor de la propiedad Zoom y agrega barras de desplazamiento al formulario cuando conviene. El ejemplo utiliza un control Label para mostrar el valor actual. El usuario especifica el tamaño del formulario utilizando el control SpinButton y después hace clic en el control CommandButton para establecer el valor de la propiedad Zoom.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Un control SpinButton llamado SpinButton1.

•	Un control CommandButton llamado CommandButton1.

•	otros controles colocados cerca de los bordes del formulario.

Private Sub CommandButton1_Click()

    Zoom = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinDown()

    Label1.Caption = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinUp()

    Label1.Caption = SpinButton1.Value

End Sub

Private Sub UserForm_Initialize()

    SpinButton1.Min = 10

    SpinButton1.Max = 400

    SpinButton1.Value = 100

    Label1.Caption = SpinButton1.Value

    CommandButton1.Caption = "¡Hacer zoom!"

End Sub

Private Sub UserForm_Zoom(Porcentaje As Integer)

    Dim MiResultado As Double

    If Porcentaje > 99 Then

        ScrollBars = fmScrollBarsBoth

        ScrollLeft = 0

        ScrollTop = 0

        MiResultado = Width * Porcentaje / 100

        ScrollWidth = MiResultado

        MiResultado = Height * Porcentaje / 100

        ScrollHeight = MiResultado

    Else

        ScrollBars = fmScrollBarsNone

        ScrollLeft = 0

        ScrollTop = 0

    End If

End Sub


Max, Min, MaxLength (Ejemplo de las propiedades)

El siguiente ejemplo demuestra las propiedades Max y Min cuando se utilizan con un control ScrollBar autónomo. El usuario puede establecer los valores de las propiedades Max y Min a cualquier entero entre –1000 y 1000. Este ejemplo también utiliza la propiedad MaxLength para restringir el número de caracteres introducidos para los valores de las propiedades Max y Min.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1 y un control TextBox llamado TextBox1.

•	Un control Label llamado Label2 y un control TextBox llamado TextBox2.

•	Un control ScrollBar llamado ScrollBar1.

•	Un control Label llamado Label3.

Dim NúmTemp As Integer

Private Sub UserForm_Initialize()

    Label1.Caption = "Mínimo de -1000 a 1000"

    ScrollBar1.Min = -1000

    TextBox1.Text = ScrollBar1.Min

    TextBox1.MaxLength = 5

    Label2.Caption = "Máximo de -1000 a 1000"

    ScrollBar1.Max = 1000

    TextBox2.Text = ScrollBar1.Max

    TextBox2.MaxLength = 5

    ScrollBar1.SmallChange = 1

    ScrollBar1.LargeChange = 100

    ScrollBar1.Value = 0

    Label3.Caption = ScrollBar1.Value

End Sub

Private Sub TextBox1_Change()

    If IsNumeric(TextBox1.Text) Then

        NúmTemp = CInt(TextBox1.Text)

        If NúmTemp >= -1000 And NúmTemp <= 1000 Then

            ScrollBar1.Min = NúmTemp

        Else

            TextBox1.Text = ScrollBar1.Min

        End If

    Else

        TextBox1.Text = ScrollBar1.Min

    End If

End Sub

Private Sub TextBox2_Change()

    If IsNumeric(TextBox2.Text) Then

        NúmTemp = CInt(TextBox2.Text)

        If NúmTemp >= -1000 And NúmTemp <= 1000 Then

            ScrollBar1.Max = NúmTemp

        Else

            TextBox2.Text = ScrollBar1.Max

        End If

    Else

        TextBox2.Text = ScrollBar1.Max

    End If

End Sub

Private Sub ScrollBar1_Change()

Label3.Caption = ScrollBar1.Value

End Sub


LargeChange, SmallChange (Ejemplo de las propiedades)

El siguiente ejemplo demuestra las propiedades LargeChange y SmallChange cuando se utilizan con un control ScrollBar autónomo. El usuario puede establecer como valores de las propiedades LargeChange y SmallChange cualquier entero entre 0 y 100. Este ejemplo también utiliza la propiedad MaxLength para restringir el número de caracteres introducidos para los valores de las propiedades LargeChange y SmallChange.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1 y un control TextBox llamado TextBox1.

•	Un control Label llamado Label2 y un control TextBox llamado TextBox2.

•	Un control ScrollBar llamado ScrollBar1.

•	Un control Label llamado Label3.

Dim NúmTemp As Integer

Private Sub ScrollBar1_Change()

    Label3.Caption = ScrollBar1.Value

End Sub

Private Sub TextBox1_Change()

    If IsNumeric(TextBox1.Text) Then

        NúmTemp = CInt(TextBox1.Text)

        If NúmTemp >= 0 And NúmTemp <= 100 Then

            ScrollBar1.SmallChange = NúmTemp

        Else

            TextBox1.Text = ScrollBar1.SmallChange

        End If

    Else

        TextBox1.Text = ScrollBar1.SmallChange

    End If

End Sub

Private Sub TextBox2_Change()

    If IsNumeric(TextBox2.Text) Then

        NúmTemp = CInt(TextBox2.Text)

        If NúmTemp >= 0 And NúmTemp <= 100 Then

            ScrollBar1.LargeChange = NúmTemp

        Else

            TextBox2.Text = ScrollBar1.LargeChange

        End If

    Else

        TextBox2.Text = ScrollBar1.LargeChange

    End If

End Sub

Private Sub UserForm_Initialize()

    ScrollBar1.Min = -1000

    ScrollBar1.Max = 1000

    Label1.Caption = "SmallChange entre 0 y 100"

    ScrollBar1.SmallChange = 1

    TextBox1.Text = ScrollBar1.SmallChange

    TextBox1.MaxLength = 3

    Label2.Caption = "LargeChange entre 0 y 100"

    ScrollBar1.LargeChange = 100

    TextBox2.Text = ScrollBar1.LargeChange

    TextBox2.MaxLength = 3

    ScrollBar1.Value = 0

    Label3.Caption = ScrollBar1.Value

End Sub


ScrollBars, KeepScrollBarsVisible (Ejemplo de las propiedades)

El siguiente ejemplo utiliza la propiedad ScrollBars y la propiedad KeepScrollBarsVisible para agregar barras de desplazamiento a una página de un control MultiPage y a un objeto Frame. El usuario elige un botón de opción que, en su momento, especifica un valor para la propiedad KeepScrollBarsVisible.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control MultiPage llamado MultiPage1.

•	Un control Frame llamado Frame1.

•	Cuatro controles OptionButton llamados OptionButton1 hasta OptionButton4.

Private Sub UserForm_Initialize()

    MultiPage1.Pages(0).ScrollBars = fmScrollBarsBoth

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsNone

    Frame1.ScrollBars = fmScrollBarsBoth

    Frame1.KeepScrollBarsVisible = fmScrollBarsNone

    OptionButton1.Caption = "Sin barra de desplazamiento"

    OptionButton1.Value = True

    OptionButton2.Caption = "Barra de desplazamiento horizontal"

    OptionButton3.Caption = "Barra de desplazamiento vertical"

    OptionButton4.Caption = "Las dos barras de desplazamiento"

End Sub

Private Sub OptionButton1_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsNone

    Frame1.KeepScrollBarsVisible = fmScrollBarsNone

End Sub

Private Sub OptionButton2_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsHorizontal

    Frame1.KeepScrollBarsVisible = fmScrollBarsHorizontal

End Sub

Private Sub OptionButton3_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsVertical

    Frame1.KeepScrollBarsVisible = fmScrollBarsVertical

End Sub

Private Sub OptionButton4_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsBoth

    Frame1.KeepScrollBarsVisible = fmScrollBarsBoth

End Sub


ScrollHeight, ScrollLeft, ScrollTop, ScrollWidth (Ejemplo de las propiedades)

El siguiente ejemplo utiliza una página de un control MultiPage como un área de desplazamiento. El usuario puede utilizar las barras de desplazamiento de Page2 del control MultiPage para obtener acceso a partes de la página que inicialmente no se muestran.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control MultiPage llamado MultiPage1 y que cada página del control MultiPage contiene uno o más controles.

Nota   Cada página de un control MultiPage es única. Page1 no tiene barras de desplazamiento. Page2 tiene barras de desplazamiento horizontal y vertical.

Private Sub UserForm_Initialize()

    MultiPage1.Pages(1).ScrollBars = fmScrollBarsBoth

    MultiPage1.Pages(1).KeepScrollBarsVisible = fmScrollBarsNone

    MultiPage1.Pages(1).ScrollHeight = 2 * MultiPage1.Height

    MultiPage1.Pages(1).ScrollWidth = 2 * MultiPage1.Width

    'Establezca ScrollHeight, ScrollWidth antes de establecer ScrollLeft, ScrollTop

    MultiPage1.Pages(1).ScrollLeft = MultiPage1.Width / 2

    MultiPage1.Pages(1).ScrollTop = MultiPage1.Height / 2

End Sub


InsideHeight, InsideWidth (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades InsideHeight e InsideWidth para cambiar el tamaño de un control CommandButton. El usuario hace clic en el control CommandButton para cambiarlo de tamaño.

Nota   InsideHeight e InsideWidth son propiedades de sólo lectura.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

Dim CambiarTamaño As Single

Private Sub UserForm_Initialize()

    CambiarTamaño = 0.75

    CommandButton1.Caption = "Cambiar tamaño del botón"

End Sub

Private Sub CommandButton1_Click()

    CommandButton1.Move 10, 10, UserForm1.InsideWidth * CambiarTamaño, UserForm1.InsideHeight * CambiarTamaño

    CommandButton1.Caption = "¡Se cambió el tamaño del botón utilizando las propiedades InsideHeight e InsideWidth!"

End Sub


ListRows (Ejemplo de la propiedad)

El siguiente ejemplo utiliza un control SpinButton para controlar el número de filas de la lista desplegable de un control ComboBox. El usuario cambia el valor del control SpinButton, después hace clic en la flecha de lista desplegable del control ComboBox para mostrar la lista.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ComboBox llamado ComboBox1.

•	Un control SpinButton llamado SpinButton1.

•	Un control Label llamado Label1.

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 20

        ComboBox1.AddItem "Opción " & (ComboBox1.ListCount + 1)

    Next i

    SpinButton1.Min = 0

    SpinButton1.Max = 12

    SpinButton1.Value = ComboBox1.ListRows

    Label1.Caption = "Enumerar filas = " & SpinButton1.Value

End Sub

Private Sub SpinButton1_Change()

    ComboBox1.ListRows = SpinButton1.Value

    Label1.Caption = " Enumerar filas = " & SpinButton1.Value

End Sub


ListWidth (Ejemplo de la propiedad)

El siguiente ejemplo utiliza un control SpinButton para controlar el ancho de la lista desplegable de un control ComboBox. El usuario cambia el valor del control SpinButton, después hace clic en la flecha de lista desplegable del control ComboBox para mostrar la lista.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ComboBox llamado ComboBox1.

•	Un control SpinButton llamado SpinButton1.

•	Un control Label llamado Label1.

Private Sub SpinButton1_Change()

    ComboBox1.ListWidth = SpinButton1.Value

    Label1.Caption = "Ancho de la lista = " & SpinButton1.Value

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 20

        ComboBox1.AddItem "Opción " & (ComboBox1.ListCount + 1)

    Next i

    SpinButton1.Min = 0

    SpinButton1.Max = 130

    SpinButton1.Value = Val(ComboBox1.ListWidth)

    SpinButton1.SmallChange = 5

    Label1.Caption = "Ancho de la lista = " & SpinButton1.Value

End Sub


ListStyle, MultiSelect (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades ListStyle y MultiSelect para controlar la apariencia de un control ListBox. El usuario elige un valor para la propiedad ListStyle utilizando un control ToggleButton y elige un control OptionButton para uno de los valores de la propiedad MultiSelect. La apariencia del control ListBox cambia por consiguiente, así como la manera de seleccionar dentro del control ListBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ListBox llamado ListBox1.

•	Un control Label llamado Label1.

•	Tres controles OptionButton llamados OptionButton1 hasta OptionButton3.

•	Un control ToggleButton llamado ToggleButton1.

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 8

        ListBox1.AddItem "Opción" & (ListBox1.ListCount + 1)

    Next i

    Label1.Caption = "Opciones de MultiSelect"

    Label1.AutoSize = True

    ListBox1.MultiSelect = fmMultiSelectSingle

    OptionButton1.Caption = "Entrada sencilla"

    OptionButton1.Value = True

    OptionButton2.Caption = "Entradas múltiples"

    OptionButton3.Caption = "Entradas extendidas"

    ToggleButton1.Caption = "ListStyle - Sencillo"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

    ToggleButton1.Height = 30

End Sub

Private Sub OptionButton1_Click()

    ListBox1.MultiSelect = fmMultiSelectSingle

End Sub

Private Sub OptionButton2_Click()

    ListBox1.MultiSelect = fmMultiSelectMulti

End Sub

Private Sub OptionButton3_Click()

    ListBox1.MultiSelect = fmMultiSelectExtended

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "ListStyle sencillo"

        ListBox1.ListStyle = fmListStylePlain

    Else

        ToggleButton1.Caption = "OptionButton o CheckBox"

        ListBox1.ListStyle = fmListStyleOption

    End If

End Sub


MouseIcon, MousePointer (Ejemplo de las propiedades)

El siguiente ejemplo demuestra cómo especificar un puntero del mouse que es adecuado para un control o una situación específica. Puede asignar uno de los varios punteros del mouse utilizando la propiedad MousePointer  o puede asignar un icono personalizado utilizando las propiedades MousePointer y MouseIcon.

Este ejemplo funciona de las formas siguientes:

•	Elija un puntero del mouse del control ListBox para cambiar el puntero del mouse asociado con el primer control CommandButton.

•	Haga clic en el control CommandButton para asociar el puntero del mouse con el segundo control CommandButton.

•	Haga clic en el segundo control CommandButton para cargar un icono personalizado para el puntero del mouse.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

•	Un control ListBox llamado ListBox1.

Nota   Este ejemplo utiliza dos archivos de iconos (identificados por la extensión de nombre de archivo .ico) que se cargan utilizando la función LoadPicture. Debería modificar cada llamada a la función LoadPicture para especificar un archivo que icono que se encuentra en el sistema.

Private Sub ListBox1_Click()

    If IsNull(ListBox1.Value) = False Then

        CommandButton1.MousePointer = ListBox1.Value

        If CommandButton1.MousePointer = fmMousePointerCustom Then

            CommandButton1.MouseIcon = LoadPicture("c:\msvc20\cdk32\ejemplos\circ1\bix.ico")

        End If

    End If

End Sub

Private Sub CommandButton1_Click()

    CommandButton2.MousePointer = CommandButton1.MousePointer

    If CommandButton2.MousePointer = fmMousePointerCustom Then

        CommandButton2.MouseIcon = CommandButton1.MouseIcon

    End If

End Sub

Private Sub CommandButton2_Click()

    CommandButton2.MousePointer = fmMousePointerCustom

    CommandButton2.MouseIcon = LoadPicture("c:\msvc20\cdk32\ejemplos\empujar\empujar.ico")

End Sub

Private Sub UserForm_Initialize()

    'Carga el control ListBox con las opciones de la propiedad MousePointer

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "fmMousePointerDefault"

    ListBox1.List(0, 1) = fmMousePointerDefault

    ListBox1.AddItem "fmMousePointerArrow"

    ListBox1.List(1, 1) = fmMousePointerArrow

    ListBox1.AddItem "fmMousePointerCross"

    ListBox1.List(2, 1) = fmMousePointerCross

    ListBox1.AddItem "fmMousePointerIBeam"

    ListBox1.List(3, 1) = fmMousePointerIBeam

    ListBox1.AddItem "fmMousePointerSizeNESW"

    ListBox1.List(4, 1) = fmMousePointerSizeNESW

    ListBox1.AddItem "fmMousePointerSizeNS"

    ListBox1.List(5, 1) = fmMousePointerSizeNS

    ListBox1.AddItem "fmMousePointerSizeNWSE"

    ListBox1.List(6, 1) = fmMousePointerSizeNWSE

    ListBox1.AddItem "fmMousePointerSizeWE"

    ListBox1.List(7, 1) = fmMousePointerSizeWE

    ListBox1.AddItem "fmMousePointerUpArrow"

    ListBox1.List(8, 1) = fmMousePointerUpArrow

    ListBox1.AddItem "fmMousePointerHourglass"

    ListBox1.List(9, 1) = fmMousePointerHourGlass

    ListBox1.AddItem "fmMousePointerNoDrop"

    ListBox1.List(10, 1) = fmMousePointerNoDrop

    ListBox1.AddItem "fmMousePointerAppStarting"

    ListBox1.List(11, 1) = fmMousePointerAppStarting

    ListBox1.AddItem "fmMousePointerHelp"

    ListBox1.List(12, 1) = fmMousePointerHelp

    ListBox1.AddItem "fmMousePointerSizeAll"

    ListBox1.List(13, 1) = fmMousePointerSizeAll

    ListBox1.AddItem "fmMousePointerCustom"

    ListBox1.List(14, 1) = fmMousePointerCustom

    ListBox1.BoundColumn = 2

    ListBox1.Value = fmMousePointerDefault

    MsgBox "ListBox1.Value =" & ListBox1.Value & "."

    CommandButton1.MousePointer = ListBox1.Value

End Sub


EnterKeyBehavior (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad EnterKeyBehavior para controlar el efecto de presionar ENTRAR en un control TextBox. En este ejemplo, el usuario puede especificar un control TextBox de línea simple o de múltiples líneas.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Dos controles ToggleButton llamados ToggleButton1 y ToggleButton2.

Private Sub UserForm_Initialize()

    TextBox1.EnterKeyBehavior = True

    ToggleButton1.Caption = "EnterKeyBehavior es True"

    ToggleButton1.Width = 80

    ToggleButton1.Value = True

    TextBox1.MultiLine = True

    ToggleButton2.Caption = "MultiLine es True"

    ToggleButton2.Width = 80

    ToggleButton2.Value = True

    TextBox1.Height = 100

    TextBox1.WordWrap = True

    TextBox1.Text = "Escriba aquí el texto. Si EnterKeyBehavior es True,"& _
    " presione Entrar para iniciar una línea nueva. En caso contrario, presione MAYÚSCULAS+ENTRAR."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        TextBox1.EnterKeyBehavior = True

        ToggleButton1.Caption = "EnterKeyBehavior es True"

    Else

        TextBox1.EnterKeyBehavior = False

        ToggleButton1.Caption = "EnterKeyBehavior es False"

    End If

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        TextBox1.MultiLine = True

        ToggleButton2.Caption = "TextBox de múltiples líneas"

    Else

        TextBox1.MultiLine = False

        ToggleButton2.Caption = "TextBox de línea simple"

    End If

End Sub


Index (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad Index para cambiar el orden de las páginas y fichas en un control MultiPage y TabStrip. El usuario elige CommandButton1 para mover la tercera página y la ficha al frente del control MultiPage y TabStrip. El usuario elige CommandButton2 para mover la página y la ficha seleccionada al fondo del control MultiPage y TabStrip.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

•	Un control MultiPage llamado MultiPage1.

•	Un control TabStrip llamado TabStrip1.

Dim MiPáginaoFicha As Object

Private Sub CommandButton1_Click()

'Mueve la tercera página y la ficha al frente del control

    MultiPage1.page3.Index = 0

    TabStrip1.Tab3.Index = 0

End Sub

Private Sub CommandButton2_Click()

'Mueve la página y la ficha seleccionada al fondo del control

    Set MiPáginauObjeto = MultiPage1.SelectedItem

    MsgBox "MultiPage1.SelectedItem = " & MultiPage1.SelectedItem.Name

    MiPáginauObjeto.Index = 4

    Set MiPáginauObjeto = TabStrip1.SelectedItem

    MsgBox "TabStrip1.SelectedItem = " & TabStrip1.SelectedItem.Caption

    MiPáginauObjeto.Index = 4

End Sub

Private Sub UserForm_Initialize()

    MultiPage1.Width = 200

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    TabStrip1.Width = 200

    TabStrip1.Tabs.Add

    TabStrip1.Tabs.Add

    TabStrip1.Tabs.Add

    CommandButton1.Caption = "Mueve la tercera página/ficha al frente"

    CommandButton1.Width = 160

    CommandButton2.Caption = "Mueve el elemento seleccionado al fondo"

    CommandButton2.Width = 160

 End Sub


Enabled, Locked (Ejemplo de la propiedad)

El siguiente ejemplo demuestra las propiedades Enabled y Locked y cómo se complementan entre sí. Este ejemplo expone cada propiedad independientemente con un control CheckBox, para que observe los valores individuales y combinados. Este ejemplo también incluye un segundo control TextBox para que pueda cortar y pegar información entre los controles TextBox y comprueba las actividades admitidas por los valores de estas propiedades.

Nota   Puede copiar la selección al Portapapeles utilizando CTRL+C y pegar utilizando CTRL+V.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Dos controles CheckBox llamados CheckBox1 y CheckBox2.

•	Un segundo control TextBox llamado TextBox2.

Private Sub CheckBox1_Change()

    TextBox2.Text = "Cuadro de texto 2"

    TextBox1.Enabled = CheckBox1.Value

End Sub

Private Sub CheckBox2_Change()

    TextBox2.Text = "Cuadro de texto 2"

    TextBox1.Locked = CheckBox2.Value

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "Cuadro de texto 1"

    TextBox1.Enabled = True

    TextBox1.Locked = False

    CheckBox1.Caption = "Disponible"

    CheckBox1.Value = True

    CheckBox2.Caption = "Bloqueado"

    CheckBox2.Value = False

    TextBox2.Text = "Cuadro de texto 2"

End Sub


Delay (Ejemplo de la propiedad)

El siguiente ejemplo demuestra el intervalo de tiempo entre los eventos Change, SpinUp y SpinDown sucesivos que se produce cuando un usuario mantiene presionado el botón del mouse para cambiar el valor de un control SpinButton o ScrollBar.

En este ejemplo, el usuario elige un valor de demora, hace clic y mantiene presionado el botón del mouse en cada lado del control SpinButton. Los eventos SpinUp y SpinDown se guardan en un control ListBox como se iniciaron.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control SpinButton llamado SpinButton1.

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un control ListBox llamado ListBox1.

Dim ContadorEvento As Long

Private Sub ResetControl()

    ListBox1.Clear

    ContadorEvento = 0

    SpinButton1.Value = 5000

End Sub

Private Sub UserForm_Initialize()

    SpinButton1.Min = 0

    SpinButton1.Max = 10000

    ResetControl

    SpinButton1.Delay = 50

    OptionButton1.Caption = "Demora de 50 milisegundos"

    OptionButton2.Caption = "Demora de 250 milisegundos"

    OptionButton1.Value = True

End Sub

Private Sub OptionButton1_Click()

    SpinButton1.Delay = 50

    ResetControl

End Sub

Private Sub OptionButton2_Click()

    SpinButton1.Delay = 250

    ResetControl

End Sub

Private Sub SpinButton1_SpinDown()

    ContadorEvento = ContadorEvento + 1

    ListBox1.AddItem ContadorEvento

End Sub

Private Sub SpinButton1_SpinUp()

    ContadorEvento = ContadorEvento + 1

    ListBox1.AddItem ContadorEvento

End Sub


DropButtonStyle, ShowDropButtonWhen (Ejemplo de las propiedades)

El siguiente ejemplo demuestra los símbolos diferentes que puede especificar para una flecha de lista desplegable en un control ComboBox o TextBox. En este ejemplo, el usuario elige un estilo de flecha de lista desplegable de un control ComboBox. Este ejemplo también utiliza la propiedad Locked. Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ComboBox llamado ComboBox1.

•	Un control Label llamado Label1.

•	Un control TextBox llamado TextBox1 colocado debajo de Label1.

Private Sub ComboBox1_Click()

    ComboBox1.DropButtonStyle = ComboBox1.Value

    TextBox1.DropButtonStyle = ComboBox1.Value

End Sub

Private Sub UserForm_Initialize()

    ComboBox1.ColumnCount = 2

    ComboBox1.BoundColumn = 2

    ComboBox1.TextColumn = 1

    ComboBox1.AddItem "Botón en blanco"

    ComboBox1.List(0, 1) = 0

    ComboBox1.AddItem "Flecha abajo "

    ComboBox1.List(1, 1) = 1

    ComboBox1.AddItem "Puntos suspensivos"

    ComboBox1.List(2, 1) = 2

    ComboBox1.AddItem "Subrayado"

    ComboBox1.List(3, 1) = 3

    ComboBox1.Value = 0

    TextBox1.Text = "Cuadro de texto 1"

    TextBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways

    TextBox1.Locked = True

    Label1.Caption = "El DropButtonStyle también es aplicable a un TextBox."

    Label1.AutoSize = True

    Label1.WordWrap = False

End Sub


LineCount, TextLength (Ejemplo de las propiedades)

El siguiente ejemplo cuenta los caracteres y el número de líneas de texto en un control TextBox utilizando las propiedades LineCount y TextLength y el método SetFocus. En este ejemplo, el usuario puede escribir en un control TextBox y puede recuperar los valores actuales de las propiedades LineCount y TextLength.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene los siguientes controles:

•	Un control TextBox llamado TextBox1.

•	Un control CommandButton llamado CommandButton1.

•	Dos controles Label llamados Label1 y Label2.

'Presione MAYÚSCULAS+ENTRAR para iniciar una línea nueva en el cuadro de texto.

Private Sub CommandButton1_Click()

    'Primero debe proporcionar el enfoque al TextBox1 para conocer la cuenta de líneas

    TextBox1.SetFocus

    Label1.Caption = "Cuenta de líneas = " & TextBox1.LineCount

    Label2.Caption = "Longitud de texto = " & TextBox1.TextLength

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.WordWrap = True

    CommandButton1.AutoSize = True

    CommandButton1.Caption = "Obtener contadores"

    Label1.Caption = "Cuenta de líneas = "

    Label2.Caption = "Longitud de texto = "

    TextBox1.MultiLine = True

    TextBox1.WordWrap = True

    TextBox1.Text = "Escriba aquí el texto."

End Sub


Count (Ejemplo de la propiedad)

El siguiente ejemplo muestra la propiedad Count de la colección Controls del formulario y la propiedad Count que identifica el número de páginas y fichas de cada control MultiPage y TabStrip.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. El formulario puede contener cualquier número de controles, con las siguientes restricciones:

•	Los nombres de los controles MultiPage deben empezar por “MultiPage”.

•	Los nombres de los controles TabStrip deben empezar por “TabStrip”.

Nota   Puede agregar páginas a un control MultiPage o agregar fichas a un control TabStrip. Haga doble clic en el control, haga clic con el botón secundario en el área de las fichas del control y elija Nueva página en el menú contextual.

Private Sub UserForm_Initialize()

    Dim MiControl As Control

    MsgBox "UserForm1.Controls.Count = " & Controls.Count

    For Each MiControl In Controls

        If (MiControl.Name Like "MultiPage*") Then

            MsgBox MiControl.Name & ".Pages.Count = " & MiControl.Pages.Count

        ElseIf (MiControl.Name Like "TabStrip*") Then

            MsgBox MiControl.Name & ".Tabs.Count = " & MiControl.Tabs.Count

        End If

    Next

End Sub


Alignment (Ejemplo de la propiedad)

El siguiente ejemplo demuestra la propiedad Alignment utilizada con varios controles OptionButton. En este ejemplo, el usuario puede cambiar la alineación haciendo clic en un control ToggleButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene los siguientes controles:

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un control ToggleButton llamado ToggleButton1.

Private Sub UserForm_Initialize()

    OptionButton1.Alignment = fmAlignmentLeft

    OptionButton2.Alignment = fmAlignmentLeft

    OptionButton1.Caption = "Alineación con AutoSize"

    OptionButton2.Caption = "Opción 2"

    OptionButton1.AutoSize = True

    OptionButton2.AutoSize = True

    ToggleButton1.Caption = "Alineación a la izquierda"

    ToggleButton1.WordWrap = True

    ToggleButton1.Value = True

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "Alineación a la izquierda"

        OptionButton1.Alignment = fmAlignmentLeft

        OptionButton2.Alignment = fmAlignmentLeft

    Else

        ToggleButton1.Caption = "Alineación a la derecha"

        OptionButton1.Alignment = fmAlignmentRight

        OptionButton2.Alignment = fmAlignmentRight

    End If

End Sub


ActiveControl (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad ActiveControl en una subrutina que sigue los controles por los que pasa el usuario. El evento Enter para cada control llama a la subrutina EncontrarEnfoque para identificar el control que tiene el enfoque.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene los siguientes controles:

•	Un control ScrollBar llamado ScrollBar1.

•	Un control ListBox llamado ListBox1.

•	Dos controles OptionButton llamados OptionButton1 y OptionButton2.

•	Un objeto Frame llamado Frame1.

Dim MiControl As Control

Private Sub EncontrarEnfoque()

    ListBox1.AddItem ActiveControl.Name

    ListBox1.List(ListBox1.ListCount - 1, 1) = ActiveControl.TabIndex

End Sub

Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "Controles visitados"

    ListBox1.List(0, 1) = "Índice del control"

End Sub

Private Sub Frame1_Enter()

    EncontrarEnfoque

End Sub

Private Sub ListBox1_Enter()

    EncontrarEnfoque

End Sub

Private Sub OptionButton1_Enter()

    EncontrarEnfoque

End Sub

Private Sub OptionButton2_Enter()

    EncontrarEnfoque

End Sub

Private Sub ScrollBar1_Enter()

    EncontrarEnfoque

End Sub


DropDown (Ejemplo del método)

El siguiente ejemplo utiliza el método DropDown para controlar la presentación de la lista en un control ComboBox. El usuario puede mostrar y cerrar la lista de un control ComboBox haciendo clic en el control CommandButton.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ComboBox llamado ComboBox1.

•	Un control CommandButton llamado CommandButton1.

Private Sub CommandButton1_Click()

    ComboBox1.DropDown

End Sub

Private Sub UserForm_Initialize()

    ComboBox1.AddItem "Pavo"

    ComboBox1.AddItem "Pollo"

    ComboBox1.AddItem "Pato"

    ComboBox1.AddItem "Oca"

    ComboBox1.AddItem "Ganso"

End Sub


Cortar y pegar de un control TextBox (Ejemplo)

El siguiente ejemplo utiliza los métodos Cut y Paste para cortar texto de un control TextBox y pegarlo en otro control TextBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles TextBox llamados TextBox1 y TextBox2.

•	Un control CommandButton llamado CommandButton1.

Private Sub UserForm_Initialize()

    TextBox1.Text = "¡De TextBox1!"

    TextBox2.Text = "Hola "

    CommandButton1.Caption = "Cortar y pegar "

    CommandButton1.AutoSize = True

End Sub

Private Sub CommandButton1_Click()

    TextBox2.SelStart = 0

    TextBox2.SelLength = TextBox2.TextLength

    TextBox2.Cut

    TextBox1.SetFocus

    TextBox1.SelStart = 0

    TextBox1.Paste

    TextBox2.SelStart = 0

End Sub


Cortar y pegar de un objeto Page (Ejemplo)

El siguiente ejemplo utiliza los métodos Add, Cut y Paste para cortar y pegar un control de un Page a un MultiPage. El control involucrado en las operaciones de cortar y pegar se agrega dinámicamente al formulario.

Este ejemplo supone que el usuario agregará, después cortará y por último pegará el nuevo control.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Tres controles CommandButton llamados desde CommandButton1 hasta CommandButton3.

•	Un control MultiPage llamado MultiPage1.

Dim MiCuadroTexto As Control

Private Sub CommandButton1_Click()

    Set MiCuadroTexto = MultiPage1.Pages(MultiPage1.Value).Controls.Add("Forms.TextBox.1", "MiCuadrodetexto", Visible)

    CommandButton2.Enabled = True

    CommandButton1.Enabled = False

End Sub

Private Sub CommandButton2_Click()

    MultiPage1.Pages(MultiPage1.Value).Controls.Cut

    CommandButton3.Enabled = True

    CommandButton2.Enabled = False

End Sub

Private Sub CommandButton3_Click()

    Dim MiPágina As Object

    Set MiPágina = MultiPage1.Pages.Item(MultiPage1.Value)

    MiPágina.Paste

    CommandButton3.Enabled = False

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Agregar"

    CommandButton2.Caption = "Cortar"

    CommandButton3.Caption = "Pegar"

    CommandButton1.Enabled = True

    CommandButton2.Enabled = False

    CommandButton3.Enabled = False

End Sub


Name (Ejemplo de la propiedad)

El siguiente ejemplo muestra la propiedad Name de cada control de un formulario. Este ejemplo utiliza la colección Controls para recorrer todos los controles colocados directamente en Userform.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control CommandButton llamado CommandButton1 y otros controles.

Private Sub CommandButton1_Click()

    Dim MiControl As Control

    For Each MiControl In Controls

        MsgBox "MiControl.Name = " & MiControl.Name

    Next

End Sub


Tener acceso a un control Tab (Ejemplo)

El siguiente ejemplo tiene acceso a una ficha individual de un control TabStrip de varias formas:

•	Utilizando la colección Tabs con un índice numérico.

•	Utilizando la colección Tabs con un índice de cadena.

•	Utilizando la colección Tabs con el método Item.

•	Utilizando el nombre de un control Tab.

•	Utilizando la propiedad SelectedItem.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control TabStrip llamado TabStrip1.

Private Sub UserForm_Initialize()

    Dim NombreFicha As String

    For i = 0 To TabStrip1.Count - 1

        'Utilizando índice (numérico o de cadena)

        MsgBox "TabStrip1.Tabs(i).Caption = " & TabStrip1.Tabs(i).Caption

        MsgBox "TabStrip1.Tabs.Item(i).Caption = " & TabStrip1.Tabs.Item(i).Caption

        NombreFicha = TabStrip1.Tabs(i).Name

        MsgBox "NombreFicha = " & NombreFicha

        MsgBox "TabStrip1.Tabs(NombreFicha).Caption = " & TabStrip1.Tabs(NombreFicha).Caption

        MsgBox "TabStrip1.Tabs.Item(NombreFicha).Caption = " & TabStrip1.Tabs.Item(NombreFicha).Caption

        'Utiliza un objeto Tab sin referencia a la colección Tabs

        If i = 0 Then

            MsgBox "TabStrip1.Tab1. Caption = " & TabStrip1.Tab1.Caption

        ElseIf i = 1 Then

            MsgBox "TabStrip1.Tab2. Caption = " & TabStrip1.Tab2.Caption

        EndIf

        'Utiliza la propiedad SelectedItem

        TabStrip1.Value = i

        MsgBox " TabStrip1.SelectedItem.Caption = " & TabStrip1.SelectedItem.Caption

    Next i

End Sub


Zoom (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad Zoom para reducir o aumentar el tamaño de la información mostrada en un formulario, Page o Frame. Este ejemplo incluye un objeto Frame, un control TextBox en el Frame y un control ScrollBar. El nivel de ampliación del objeto Frame cambia mediante la propiedad Zoom. El usuario puede establecer la propiedad Zoom utilizando el control ScrollBar. El control TextBox está presente para demostrar los efectos del zoom.

Este ejemplo también utiliza las propiedades Max y Min para identificar el intervalo de valores aceptables para el control ScrollBar.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Un control ScrollBar llamado ScrollBar1.

•	Un segundo control Label llamado Label2.

•	Un objeto Frame llamado Frame1.

•	Un control TextBox llamado TextBox1 que está colocado dentro de Frame1.

Private Sub UserForm_Initialize()

    ScrollBar1.Max = 400

    ScrollBar1.Min = 10

    ScrollBar1.Value = 100

    Label1.Caption = "10  -----Porcentaje del tamaño original---- 400"

    Label2.Caption = ScrollBar1.Value

    Frame1.TextBox1.Text = "Escriba aquí el texto."

    Frame1.TextBox1.MultiLine = True

    Frame1.TextBox1.WordWrap = True

    Frame1.Zoom = ScrollBar1.Value

End Sub

Private Sub ScrollBar1_Change()

    Frame1.Zoom = ScrollBar1.Value

    Label2.Caption = ScrollBar1.Value

End Sub


TextColumn (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad TextColumn para identificar la columna de datos en un control ListBox que proporciona datos a su propiedad Text. Este ejemplo establece la tercera columna del ListBox como la columna de texto. Cuando selecciona una entrada del control ListBox, el valor de la propiedad TextColumn se presentará en el control Label.

Este ejemplo también demuestra cómo cargar un control ListBox de múltiples columnas utilizando el método AddItem y la propiedad List.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ListBox llamado ListBox1.

•	Un control TextBox llamado TextBox1.

Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 3

ListBox1.AddItem "Fila 1, Columna 1"

ListBox1.List(0, 1) = "Fila 1, Columna 2"

ListBox1.List(0, 2) = "Fila 1, Columna 3"

ListBox1.AddItem "Fila 2, Columna 1"

ListBox1.List(1, 1) = "Fila 2, Columna 2"

ListBox1.List(1, 2) = "Fila 2, Columna 3"

ListBox1.AddItem "Fila 3, Columna 1"

ListBox1.List(2, 1) = "Fila 3, Columna 2"

ListBox1.List(2, 2) = "Fila 3, Columna 3"

ListBox1.TextColumn = 3

End Sub

Private Sub ListBox1_Change()

TextBox1.Text = ListBox1.Text

End Sub


PictureSizeMode (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad PictureSizeMode para demostrar tres opciones de presentación de una imagen, mostrando la imagen como es, cambiando el tamaño de la imagen mientras mantiene sus proporciones originales y reduciendo la imagen para llenar un espacio.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un objeto Frame llamado Frame1.

•	Un control SpinButton llamado SpinButton1.

•	Un control TextBox llamado TextBox1.

•	Tres controles OptionButton llamados desde OptionButton1 hasta OptionButton3.

Nota   Este ejemplo es una versión mejorada del ejemplo de la propiedad PictureAlignment, las dos propiedades se complementan entre sí. Las mejoras son tres subrutinas de eventos OptionButton que controlan si la imagen se recorta, cambia de tamaño o alarga.

Dim Alineaciones(5) As String

Private Sub UserForm_Initialize()

    Alineaciones(0) = "0 - Parte superior izquierda "

    Alineaciones(1) = "1 - Parte superior derecha "

    Alineaciones(2) = "2 - Centro "

    Alineaciones(3) = "3 - Parte inferior izquierda "

    Alineaciones(4) = "4 - Parte inferior derecha "

    'Especifica un mapa de bits que existe en su sistema

    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0

    SpinButton1.Max = 4

    SpinButton1.Value = 0

    TextBox1.Text = Alineaciones(0)

    Frame1.PictureAlignment = SpinButton1.Value

    OptionButton1.Caption = "Recortar"

    OptionButton1.Value = True

    OptionButton2.Caption = "Alargar"

    OptionButton3.Caption = "Cambiar tamaño"

End Sub

Private Sub OptionButton1_Click()

    If OptionButton1.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeClip

    End If

End Sub

Private Sub OptionButton2_Click()

    If OptionButton2.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeStretch

    End If

End Sub

Private Sub OptionButton3_Click()

    If OptionButton3.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeZoom

    End If

End Sub

Private Sub SpinButton1_Change()

    TextBox1.Text = Alineaciones(SpinButton1.Value)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub TextBox1_Change()

    Select Case TextBox1.Text

    Case "0"

        TextBox1.Text = Alineaciones(0)

        Frame1.PictureAlignment = 0

    Case "1"

        TextBox1.Text = Alineaciones(1)

        Frame1.PictureAlignment = 1

    Case "2"

        TextBox1.Text = Alineaciones(2)

        Frame1.PictureAlignment = 2

    Case "3"

        TextBox1.Text = Alineaciones(3)

        Frame1.PictureAlignment = 3

    Case "4"

        TextBox1.Text = Alineaciones(4)

        Frame1.PictureAlignment = 4

    Case Else

        TextBox1.Text = Alineaciones(SpinButton1.Value)

        Frame1.PictureAlignment = SpinButton1.Value

    End Select

End Sub


PictureAlignment (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad PictureAlignment para establecer una imagen de fondo. El ejemplo también identifica las opciones de alineación proporcionadas por la propiedad PictureAlignment.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un objeto Frame llamado Frame1.

•	Un control SpinButton llamado SpinButton1.

•	Un control TextBox llamado TextBox1.

Dim Alineaciones(5) As String

Private Sub UserForm_Initialize()

    Alineaciones(0) = "0 - Parte superior izquierda"

    Alineaciones(1) = "1 - Parte superior derecha"

    Alineaciones(2) = "2 - Centro"

    Alineaciones(3) = "3 - Parte inferior izquierda"

    Alineaciones(4) = "4 - Parte inferior derecha"

    'Especifica un mapa de bits que existe en su sistema

    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0

    SpinButton1.Max = 4

    SpinButton1.Value = 0

    TextBox1.Text = Alineaciones(0)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub SpinButton1_Change()

    TextBox1.Text = Alineaciones(SpinButton1.Value)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub TextBox1_Change()

    Select Case TextBox1.Text

    Case "0"

        TextBox1.Text = Alineaciones(0)

        Frame1.PictureAlignment = 0

    Case "1"

        TextBox1.Text = Alineaciones(1)

        Frame1.PictureAlignment = 1

    Case "2"

        TextBox1.Text = Alineaciones(2)

        Frame1.PictureAlignment = 2

    Case "3"

        TextBox1.Text = Alineaciones(3)

        Frame1.PictureAlignment = 3

    Case "4"

        TextBox1.Text = Alineaciones(4)

        Frame1.PictureAlignment = 4

    Case Else

        TextBox1.Text = Alineaciones(SpinButton1.Value)

        Frame1.PictureAlignment = SpinButton1.Value

    End Select

End Sub


GroupName (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad GroupName para crear un grupo de controles OptionButton en el mismo formulario.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene cinco controles OptionButton llamados desde OptionButton1 hasta OptionButton5.

Private Sub UserForm_Initialize()

    OptionButton1.GroupName = "Utensilios"

    OptionButton2.GroupName = "Utensilios"

    OptionButton4.GroupName = "Utensilios"

    OptionButton3.GroupName = "Aparatos-Grupo 2"

    OptionButton5.GroupName = "Aparatos-Grupo 2"

End Sub


GetFromClipboard (Ejemplo del método)

El siguiente ejemplo demuestra el movimiento de datos de un control TextBox al Portapapeles, del Portapapeles a un objeto DataObject y de un objeto DataObject a otro control TextBox. El método GetFromClipboard transfiere los datos del Portapapeles a un objeto DataObject. Se utilizan también los métodos Copy y GetText.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles TextBox llamados TextBox1 y TextBox2.

•	Un control CommandButton llamado CommandButton1.

Dim MisDatos as DataObject

Private Sub CommandButton1_Click()

    'Necesita seleccionar texto antes de copiarlo el Portapapeles

    TextBox1.SelStart = 0

    TextBox1.SelLength = TextBox1.TextLength

    TextBox1.Copy

    MisDatos.GetFromClipboard

    TextBox2.Text = MisDatos.GetText(1)

End Sub

Private Sub UserForm_Initialize()

    Set MisDatos = New DataObject

    TextBox1.Text = "¡Mueva estos datos al Portapapeles, a un objeto DataObject y después al control TextBox2!"

End Sub


PutInClipboard (Ejemplo del método)

El siguiente ejemplo demuestra el movimiento de datos de un control TextBox a un objeto DataObject, de un objeto DataObject al Portapapeles y del Portapapeles a otro control TextBox. El método PutInClipboard transfiere los datos del objeto DataObject al Portapapeles. Se utilizan también los métodos SetText y Paste.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles TextBox llamados TextBox1 y TextBox2.

•	Un control CommandButton llamado CommandButton1.

Dim MisDatos As DataObject

Private Sub CommandButton1_Click()

    Set MisDatos = New DataObject

    MisDatos.SetText TextBox1.Text

    MisDatos.PutInClipboard

    TextBox2.Paste

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "¡Mueva estos datos a un objeto DataObject, al Portapapeles y después  al control TextBox2!"

End Sub


DragBehavior, EnterFieldBehavior (Ejemplo de las propiedades)

El siguiente ejemplo utiliza las propiedades DragBehavior y EnterFieldBehavior para demostrar los efectos diferentes que puede proporcionar cuando introduce un control y cuando arrastra información de un control a otro.

El ejemplo utiliza dos controles TextBox. Puede establecer las propiedades DragBehavior y EnterFieldBehavior para cada control y ver los efectos del arrastre de un control a otro.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Dos controles ToggleButton llamados ToggleButton1 y ToggleButton2. Estos controles están asociados con TextBox1.

•	Un control TextBox llamado TextBox2.

•	Dos controles ToggleButton llamados ToggleButton3 y ToggleButton4. Estos controles están asociados con TextBox2.

Private Sub UserForm_Initialize()

    TextBox1.Text = "Érase una vez en una tierra ...,"

    ToggleButton1.Value = True

    ToggleButton1.Caption = "Drag habilitado"

    ToggleButton1.WordWrap = True

    TextBox1.DragBehavior = fmDragBehaviorEnabled

    ToggleButton2.Value = True

    ToggleButton2.Caption = "Selección de Recall"

    ToggleButton2.WordWrap = True

    TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    TextBox2.Text = "XXX, YYYY"

    ToggleButton3.Value = False

    ToggleButton3.Caption = "Drag deshabilitado"

    ToggleButton3.WordWrap = True

    TextBox2.DragBehavior = fmDragBehaviorDisabled

    ToggleButton4.Value = False

    ToggleButton4.Caption = "Seleccionar todo"

    ToggleButton4.WordWrap = True

    TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

       ToggleButton1.Caption = "Drag habilitado"

       TextBox1.DragBehavior = fmDragBehaviorEnabled

    Else

       ToggleButton1.Caption = "Drag deshabilitado"

       TextBox1.DragBehavior = fmDragBehaviorDisabled

    End If

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        ToggleButton2.Caption = "Selección de Recall"

        TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    Else

        ToggleButton2.Caption = "Seleccionar todo"

        TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

    End If

End Sub

Private Sub ToggleButton3_Click()

    If ToggleButton3.Value = True Then

       ToggleButton3.Caption = "Drag habilitado"

       TextBox2.DragBehavior = fmDragBehaviorEnabled

    Else

       ToggleButton3.Caption = "Drag deshabilitado"

       TextBox2.DragBehavior = fmDragBehaviorDisabled

    End If

End Sub

Private Sub ToggleButton4_Click()

    If ToggleButton4.Value = True Then

        ToggleButton4.Caption = "Selección de Recall"

        TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    Else

       ToggleButton4.Caption = "Seleccionar todo"

       TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

    End If

End Sub


GetFormat, GetText, SetText (Ejemplo de los métodos)

El siguiente ejemplo utiliza los métodos GetFormat, GetText y SetText para transferir texto entre un objeto DataObject y el Portapapeles.

El usuario escribe texto dentro de un control TextBox y puede transferirlo a un objeto DataObject en un formato de texto estándar haciendo clic en CommandButton1. Haciendo clic en CommandButton2 recupera el texto del objeto DataObject. Haciendo clic en CommandButton3 copia el texto de TextBox1 al objeto DataObject en un formato personalizado. Haciendo clic en CommandButton4 recupera el texto del objeto DataObject en un formato personalizado.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Cuatro controles CommandButton llamados desde CommandButton1 hasta CommandButton4.

•	Un control Label llamado Label1.

Dim MiDataObject As DataObject

Private Sub CommandButton1_Click()

'Coloca el formato estándar en el Portapapeles

    If TextBox1.TextLength > 0 Then

        Set MiDataObject = New DataObject

        MiDataObject.SetText TextBox1.Text

        Label1.Caption = "Colocar en D.O."

        CommandButton2.Enabled = True

        CommandButton4.Enabled = False

    End If

End Sub

Private Sub CommandButton2_Click()

'Obtiene el formato estándar del Portapapeles

    If MiDataObject.GetFormat(1) = True Then

        Label1.Caption = "Formato estándar - " & MiDataObject.GetText(1)

    End If

End Sub

Private Sub CommandButton3_Click()

'Coloca el formato personalizado en el Portapapeles

    If TextBox1.TextLength > 0 Then

        Set MiDataObject = New DataObject

        MiDataObject.SetText TextBox1.Text, 233

        Label1.Caption = "Personalizado en D.O."

        CommandButton4.Enabled = True

        CommandButton2.Enabled = False

    End If

End Sub

Private Sub CommandButton4_Click()

'Obtiene el formato personalizado del Portapapeles

    If MiDataObject.GetFormat(233) = True Then

        Label1.Caption = "Formato personalizado - " & MiDataObject.GetText(233)

End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton2.Enabled = False

    CommandButton4.Enabled = False

End Sub


CanPaste Property, Paste, Copy (Ejemplo de los métodos)

El siguiente ejemplo utiliza la propiedad CanPaste y el método Paste para pegar un control ComboBox desde el Portapapeles a un objeto Page de un control MultiPage. Este ejemplo también utiliza los método SetFocus y Copy para copiar un control del formulario al Portapapeles.

El usuario hace clic en CommandButton1 para copiar el control ComboBox al Portapapeles. El usuario hace doble clic (utilizando el evento DblClick) en CommandButton1 para pegar el control ComboBox al control MultiPage.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Un control ComboBox llamado ComboBox1.

•	Un control MultiPage llamado MultiPage1.

•	Un control CommandButton llamado CommandButton1.

Nota   Este ejemplo también incluye una subrutina para ilustrar el pegado de texto en un control.

Private Sub UserForm_Initialize()

    ComboBox1.AddItem "¡Es un día maravilloso!"

    CommandButton1.Caption = "Copia ComboBox al Portapapeles"

    CommandButton1.AutoSize = True

End Sub

Private Sub MultiPage1_DblClick(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean)

    If MultiPage1.Pages(MultiPage1.Value).CanPaste = True Then

        MultiPage1.Pages(MultiPage1.Value).Paste

    Else

        TextBox1.Text = "Imposible Pegar"

    End If

End Sub

Private Sub CommandButton1_Click()

        UserForm1.ComboBox1.SetFocus

        UserForm1.Copy

End Sub

'Código para pegar texto en un control

'Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'   If ComboBox1.CanPaste = True Then

'        ComboBox1.Paste

'    Else

'        TextBox1.Text = "Imposible pegar"

'    End If

'End Sub


ScrollBar (Ejemplo del control)

El siguiente ejemplo demuestra un control ScrollBar autónomo y hace un informe del cambio de sus valores cuando el usuario mueve el cuadro de desplazamiento. El usuario puede mover el cuadro de desplazamiento haciendo clic en cada flecha al final del control, haciendo clic en el área entre el cuadro de desplazamiento y cada flecha o arrastrando el cuadro de desplazamiento. Cuando el usuario arrastra el cuadro de desplazamiento, el evento Scroll muestra un mensaje que indica que el usuario se desplazó para obtener un nuevo valor.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ScrollBar llamado ScrollBar1.

•	Dos controles Label llamados Label1 y Label2. Label1 contiene información de escala para el usuario. Label2 informa del valor de incremento.

Dim ScrollGuardado As Integer        'Valor anterior del ScrollBar

Private Sub UserForm_Initialize()

    ScrollBar1.Min = -225

    ScrollBar1.Max = 289

    ScrollBar1.Value = 0

    Label1.Caption = "-225  -----Utensilios-----   289"

    Label1.AutoSize = True

    Label2.Caption = ""

End Sub

Private Sub ScrollBar1_Change()

    Label2.Caption = " Cambios de utensilio " & (ScrollGuardado - ScrollBar1.Value)

End Sub

Private Sub ScrollBar1_Exit(ByVal Cancel as MSForms.ReturnBoolean)

    Label2.Caption = " Cambios de utensilio " & (ScrollGuardado - ScrollBar1.Value)

    ScrollGuardado = ScrollBar1.Value

End Sub

Private Sub ScrollBar1_Scroll()

    Label2.Caption = (ScrollGuardado - ScrollBar1.Value) & " Cambios de utensilio por desplazamiento"

End Sub


CanUndo, CanRedo Properties, UndoAction, RedoAction (Ejemplo de los métodos)

El siguiente ejemplo demuestra cómo deshacer o rehacer la modificación de texto dentro de un cuadro de texto o dentro de un área de texto de un control ComboBox. Este ejemplo comprueba si se puede producir una operación de deshacer o rehacer y ejecuta la acción apropiada. El ejemplo utiliza las propiedades CanUndo y CanRedo y los métodos UndoAction y RedoAction.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Un control ComboBox llamado ComboBox1.

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

Private Sub CommandButton1_Click()

    If UserForm1.CanUndo = True Then

        UserForm1.UndoAction

        MsgBox "Lo deshizo"

    Else

        MsgBox "No se ejecutó deshacer."

    End If

End Sub

Private Sub CommandButton2_Click()

    If UserForm1.CanRedo = True Then

        UserForm1.RedoAction

        MsgBox "Lo rehizo"

    Else

        MsgBox "No se ejecutó rehacer."

    End If

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "Escriba aquí el texto."

    ComboBox1.ColumnCount = 3

    ComboBox1.AddItem "Opción 1, columna 1"

    ComboBox1.List(0, 1) = "Opción 1, columna 2"

    ComboBox1.List(0, 2) = "Opción 1, columna 3"

    CommandButton1.Caption = "Deshacer"

    CommandButton2.Caption = "Rehacer"

End Sub


BoundColumn (Ejemplo de la propiedad)

El siguiente ejemplo demuestra cómo la propiedad BoundColumn tiene influencia en el valor de un control ListBox. El usuario puede elegir establecer el valor del control ListBox al valor del índice de la fila especificada o a una columna de datos especificada en el control ListBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ListBox llamado ListBox1.

•	Un control Label llamado Label1.

•	Tres controles OptionButton llamados OptionButton1, OptionButton2 y OptionButton3.

Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "Elemento 1, Columna 1"

    ListBox1.List(0, 1) = "Elemento 1, Columna 2"

    ListBox1.AddItem "Elemento 2, Columna 1"

    ListBox1.List(1, 1) = "Elemento 2, Columna 2"

    ListBox1.Value = "Elemento 1, Columna 1"

    OptionButton1.Caption = "Índice de lista"

    OptionButton2.Caption = "Columna 1"

    OptionButton3.Caption = "Columna 2"

    OptionButton2.Value = True

End Sub

Private Sub OptionButton1_Click()

    ListBox1.BoundColumn = 0

    Label1.Caption = ListBox1.Value

End Sub

Private Sub OptionButton2_Click()

    ListBox1.BoundColumn = 1

    Label1.Caption = ListBox1.Value

End Sub

Private Sub OptionButton3_Click()

    ListBox1.BoundColumn = 2

    Label1.Caption = ListBox1.Value

End Sub

Private Sub ListBox1_Click()

    Label1.Caption = ListBox1.Value

End Sub


List (Ejemplo de la propiedad)

El siguiente ejemplo intercambia las columnas de un control ListBox de múltiples columnas. El ejemplo utiliza la propiedad List de dos formas:

1.	Para tener acceso y cambiar valores individuales en el control ListBox. De esta forma, la propiedad List tiene subíndices para designar la fila y la columna de un valor especificado.

2.	Para cargar inicialmente el control ListBox con valores de una matriz. De esta forma, la propiedad List no tiene subíndices.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control ListBox llamado ListBox1 y un control CommandButton llamado CommandButton1.

Dim MiMatriz(6, 3)           'Matriz que contiene los valores de columnas para el control ListBox.

Private Sub UserForm_Initialize()

    Dim i As Single

    ListBox1.ColumnCount = 3        'Este cuadro de lista contiene 3 columnas de datos

    'Carga valores de tipo integer en MiMatriz

    For i = 0 To 5

        MiMatriz(i, 0) = i

        MiMatriz(i, 1) = Rnd

        MiMatriz(i, 2) = Rnd

    Next i

    'Carga ListBox1

    ListBox1.List() = MiMatriz

End Sub

Private Sub CommandButton1_Click()

' Cambia el contenido de las columnas 1 y 3

    Dim i As Single

    Dim Temp As Single

    For i = 0 To 5

        Temp = ListBox1.List(i, 0)

        ListBox1.List(i, 0) = ListBox1.List(i, 2)

        ListBox1.List(i, 2) = Temp

    Next i

End Sub


ClientHeight, ClientLeft, ClientTop, ClientWidth (Ejemplo de las propiedades)

El siguiente ejemplo establece las dimensiones de un control Image al tamaño de un área de cliente de un control TabStrip cuando el usuario hace clic en un control CommandButton. Este ejemplo de código utiliza los siguientes propiedades: Height, Left, Top, Width, ClientHeight, ClientLeft, ClientTop y ClientWidth.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control TabStrip llamado TabStrip1.

•	Un control Image llamado Image1.

Private Sub UserForm_Initialize()

CommandButton1.Caption = "Dimensiona la imagen al área de tabulación"

CommandButton1.WordWrap = True

CommandButton1.AutoSize = True

End Sub

Private Sub CommandButton1_Click()

Image1.ZOrder (fmFront)                  'Coloca la imagen en el frente del control TabStrip

'ClientLeft y ClientTop se miden desde el borde del control TabStrip,

'no desde los bordes del formulario que contiene el TabStrip.

Image1.Left = TabStrip1.Left + TabStrip1.ClientLeft

Image1.Top = TabStrip1.Top + TabStrip1.ClientTop

Image1.Width = TabStrip1.ClientWidth

Image1.Height = TabStrip1.ClientHeight

End Sub


MultiLine, WordWrap, ScrollBars (Ejemplo de las propiedades)

El siguiente ejemplo demuestra las propiedades MultiLine, WordWrap y ScrollBars en un control TextBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox llamado TextBox1.

•	Cuatro controles ToggleButton llamados desde ToggleButton1 hasta ToggleButton4.

Para ver el texto completo colocado en el control TextBox, establezca las propiedades MultiLine y WordWrap a True haciendo clic en los controles ToggleButton.

Cuando la propiedad MultiLine es True, puede escribir líneas nuevas de texto presionando MAYÚSCULAS+ENTRAR.

La propiedad ScrollBars aparece cuando cambia manualmente el contenido del control TextBox.

Private Sub UserForm_Initialize()

'Inicializa las propiedades de TextBox y los botones de alternar

TextBox1.Text = "Escriba aquí el texto. Presione MAYÚSCULAS+ENTRAR para moverse a una línea nueva."

TextBox1.AutoSize = False

ToggleButton1.Caption = "AutoSize desactivada"

ToggleButton1.Value = False

ToggleButton1.AutoSize = True

TextBox1.WordWrap = False

ToggleButton2.Caption = "WordWrap desactivada"

ToggleButton2.Value = False

ToggleButton2.AutoSize = True

TextBox1.ScrollBars = 0

ToggleButton3.Caption = "ScrollBars desactivada"

ToggleButton3.Value = False

ToggleButton3.AutoSize = True

TextBox1.MultiLine = False

ToggleButton4.Caption = "Línea simple"

ToggleButton4.Value = False

ToggleButton4.AutoSize = True

 End Sub

Private Sub ToggleButton1_Click()

'Establece la propiedad AutoSize y ToggleButton asociado

If ToggleButton1.Value = True Then

TextBox1.AutoSize = True

ToggleButton1.Caption = "AutoSize activada"

Else

TextBox1.AutoSize = False

ToggleButton1.Caption = "AutoSize desactivada"

End If

End Sub

Private Sub ToggleButton2_Click()

'Establece la propiedad WordWrap y ToggleButton asociado

If ToggleButton2.Value = True Then

TextBox1.WordWrap = True

ToggleButton2.Caption = "WordWrap activada"

Else

TextBox1.WordWrap = False

ToggleButton2.Caption = "WordWrap desactivada"

End If

End Sub

Private Sub ToggleButton3_Click()

'Establece la propiedad ScrollBars y ToggleButton asociado

If ToggleButton3.Value = True Then

TextBox1.ScrollBars = 3

ToggleButton3.Caption = "ScrollBars activada"

Else

TextBox1.ScrollBars = 0

ToggleButton3.Caption = "ScrollBars desactivada"

End If

End Sub

Private Sub ToggleButton4_Click()

'Establece la propiedad MultiLine y ToggleButton asociado

If ToggleButton4.Value = True Then

TextBox1.MultiLine = True

ToggleButton4.Caption = "Múltiples líneas"

Else

TextBox1.MultiLine = False

ToggleButton4.Caption = "Línea simple"

End If

End Sub


Operación de arrastrar y colocar (Ejemplo)

El siguiente ejemplo demuestra una operación de arrastrar y colocar de un control ListBox a otro utilizando un objeto DataObject para contener el texto arrastrado. Este ejemplo de código utiliza los métodos SetText y StartDrag.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene dos controles ListBox llamados ListBox1 y ListBox2. También necesita agregar opciones al segundo ListBox.

Private Sub ListBox2_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As Long, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

    Cancel = True

    Effect = 1

End Sub

Private Sub ListBox2_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As Long, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

    Cancel = True

    Effect = 1

    ListBox2.AddItem Data.GetText

End Sub

Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    Dim MyDataObject As DataObject

    If Button = 1 Then

        Set MyDataObject = New DataObject

        Dim Effect As Integer

        MyDataObject.SetText ListBox1.Value

        Effect = MyDataObject.StartDrag

    End If

End Sub

Private Sub UserForm_Initialize()

    For i = 1 To 10

        ListBox1.AddItem "Choice " & (ListBox1.ListCount + 1)

    Next i

End Sub


Tener acceso a un objeto Page (Ejemplo)

El siguiente ejemplo tiene acceso a una página individual de un control MultiPage de diferentes formas:

•	Utilizando la colección Pages con un índice numérico.

•	Utilizando la colección Pages con un índice de cadena.

•	Utilizando la colección Pages con el método Item.

•	Utilizando el nombre de la página individual en el control MultiPage.

•	Utilizando la propiedad SelectedItem.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control MultiPage llamado MultiPage1.

Private Sub UserForm_Initialize()

    Dim NombrePágina As String

    For i = 0 To MultiPage1.Count - 1

        'Utiliza el índice (numérico o de cadena)

        MsgBox "MultiPage1.Pages(i).Caption = " & MultiPage1.Pages(i).Caption

        MsgBox "MultiPage1.Pages.Item(i).Caption = " & MultiPage1.Pages.Item(i).Caption

        NombrePágina = MultiPage1.Pages(i).Name

        MsgBox "NombrePágina = " & NombrePágina

        MsgBox "MultiPage1.Pages(NombrePágina).Caption = " & MultiPage1.Pages(NombrePágina).Caption

        MsgBox "MultiPage1.Pages.Item(NombrePágina).Caption = " & MultiPage1.Pages.Item(NombrePágina).Caption

        'Utiliza el objeto Page sin referencia a la colección Pages

        If i = 0 Then

            MsgBox "MultiPage1.Page1.Caption= " & MultiPage1.Page1.Caption

        ElseIf i = 1 Then

            MsgBox "MultiPage1.Page2.Caption = " & MultiPage1.Page2.Caption

        End If

        'Utiliza la propiedad SelectedItem

        MultiPage1.Value = i

        MsgBox "MultiPage1.SelectedItem.Caption = " & MultiPage1.SelectedItem.Caption

    Next i

End Sub


Agregar un control (Ejemplo)

El siguiente ejemplo utiliza el método Add para agregar un control a un formulario en tiempo de ejecución y utiliza el evento AddControl como confirmación de que se agregó el control.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control CommandButton llamado CommandButton1.

•	Un control Label llamado Label1.

Dim MiCmd as Control

Private Sub CommandButton1_Click()

Set MiCmd = Controls.Add("Forms.CommandButton.1") ', CommandButton2, Visible)

MiCmd.Left = 18

MiCmd.Top = 150

MiCmd.Width = 175

MiCmd.Height = 20

MiCmd.Caption = "Esto es divertido." & MiCmd.Name

End Sub

Private Sub UserForm_AddControl(ByVal Control As MSForms.Control)

Label1.Caption = "Se agregó el control."

End Sub


Agregar un control a una colección MultiPage (Ejemplo)

El siguiente ejemplo utiliza los métodos Add, Clear y Remove para agregar y quitar un control en un objeto Page de un control MultiPage en tiempo de ejecución.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control MultiPage llamado MultiPage1.

•	Tres controles CommandButton llamados desde CommandButton1 hasta CommandButton3.

Dim MiCuadroTexto As Control

Private Sub CommandButton1_Click()

Set MiCuadrodetexto = MultiPage1.Pages(0).Controls.Add("Forms.TextBox.1", "MiCuadrodetexto", Visible)

End Sub

Private Sub CommandButton2_Click()

MultiPage1.Pages(0).Controls.Clear

End Sub

Private Sub CommandButton3_Click()

If MultiPage1.Pages(0).Controls.Count > 0  Then

MultiPage1.Pages(0).Controls.Remove "MiCuadrodetexto"

End If

End Sub

Private Sub UserForm_Initialize()

CommandButton1.Caption = "Agregar control"

CommandButton2.Caption = "Borrar controles"

CommandButton3.Caption = "Quitar control"

End Sub


ListBox (Ejemplo del control)

El siguiente ejemplo agrega y elimina el contenido de un control ListBox utilizando los métodos AddItem, RemoveItem y SetFocus y las propiedades ListIndex y ListCount.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ListBox llamado ListBox1.

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

Dim ContadorEntrada As Single

Private Sub CommandButton1_Click()

    ContadorEntrada = ContadorEntrada + 1

    ListBox1.AddItem (ContadorEntrada & " - Selección")

End Sub

Private Sub CommandButton2_Click()

    ListBox1.SetFocus

    'Asegúrese de que el control ListBox contiene elementos de la lista

    If ListBox1.ListCount >= 1 Then

        'Si no hay nada seleccionado, elige el último elemento de la lista.

        If ListBox1.ListIndex = -1 Then

            ListBox1.ListIndex = ListBox1.ListCount - 1

        End If

        ListBox1.RemoveItem (ListBox1.ListIndex)

    End If

End Sub

Private Sub UserForm_Initialize()

    ContadorEntrada = 0

    CommandButton1.Caption = "Agregar elemento"

    CommandButton2.Caption = "Quitar elemento "

End Sub


ZOrder (Ejemplo del método)

El siguiente ejemplo establece el orden-z de un control TextBox, el usuario puede mostrar el control TextBox completo (trayéndolo al principio del orden-z) o puede colocar el control TextBox detrás de otros controles (enviándolo al final del orden-z).

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Tres controles TextBox llamados desde TextBox1 hasta TextBox3.

•	Un control ToggleButton llamado ToggleButton1.

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

TextBox2.ZOrder (fmTop)          'Coloca TextBox2 al principio del orden-z

'Actualiza el título de ToggleButton para identificar el siguiente estado

ToggleButton1.Caption = "Envía a TextBox2 hacia atrás"

Else

TextBox2.ZOrder (1)              'Coloca TextBox2 al final del orden-z

'Actualiza el título de ToggleButton para identificar el siguiente estado

ToggleButton1.Caption = "Trae a TextBox2 al frente"

End If

End Sub

Private Sub UserForm_Initialize()

'Configura los cuadros de texto para mostrar el orden-z en el formulario

TextBox1.Text = "TextBox 1"

TextBox2.Text = "TextBox 2"

TextBox3.Text = "TextBox 3"

TextBox1.Height = 40

TextBox2.Height = 40

TextBox3.Height = 40

TextBox1.Width = 60

TextBox2.Width = 60

TextBox3.Width = 60

TextBox1.Left = 10

TextBox1.Top = 10

TextBox2.Left = 25      'Superpone TextBox2 en TextBox1

TextBox2.Top = 25

TextBox3.Left = 40      'Superpone TextBox3 en TextBox2, TextBox1

TextBox3.Top = 40

ToggleButton1.Value = False

ToggleButton1.Caption = "Superpone TextBox2 al frente "

ToggleButton1.Left = 10

ToggleButton1.Top = 90

ToggleButton1.Width = 50

ToggleButton1.Height = 50

End Sub


Accelerator, Caption (Ejemplo de las propiedades)

Este ejemplo cambia las propiedades Accelerator y Caption de un control CommandButton cada vez que el usuario hace clic en el botón utilizando el mouse o la tecla de aceleración. El evento Click contiene el código para cambiar las propiedades Accelerator y Caption.

Para intentar este ejemplo, pegue el código en la sección en Declaraciones de un formulario que contiene un control CommandButton llamado CommandButton1.

Private Sub UserForm_Initialize()

CommandButton1.Accelerator  = "C"
' Establece la tecla de aceleración a ALT + C

End Sub

Private Sub CommandButton1_Click ()

If CommandButton1.Caption = "Aceptar" Then
' Comprueba el título y lo cambia.

CommandButton1.Caption = "Se hizo clic"

CommandButton1.Accelerator  = "S"         'Establece la tecla de aceleración a ALT + S

Else

CommandButton1.Caption = "Aceptar"

CommandButton1.Accelerator  = "A"         'Establece la tecla de aceleración a ALT + A

End If

End Sub


AutoSize (Ejemplo de la propiedad)

El siguiente ejemplo demuestra los efectos de la propiedad AutoSize con un control TextBox de línea simple y un control TextBox de múltiples líneas. El usuario puede escribir el texto en el control TextBox activar y desactivar la propiedad AutoSize independientemente del contenido del control TextBox. Este ejemplo de código también utiliza la propiedad Text.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles TextBox llamados TextBox1 y TextBox2.

•	Un control ToggleButton llamado ToggleButton1.

Private Sub UserForm_Initialize()

    TextBox1.Text = "TextBox de línea simple. Escriba aquí el texto."

    TextBox2.MultiLine = True

    TextBox2.Text = "TextBox de múltiples líneas. Escriba aquí el texto. Use CTRL+ENTRAR para iniciar una línea nueva."

    ToggleButton1.Value = True

    ToggleButton1.Caption = "AutoSize activada"

    TextBox1.AutoSize = True

    TextBox2.AutoSize = True

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "AutoSize activada"

        TextBox1.AutoSize = True

        TextBox2.AutoSize = True

    Else

        ToggleButton1.Caption = "AutoSize desactivada"

        TextBox1.AutoSize = False

        TextBox2.AutoSize = False

    End If

End Sub


Bold, Italic, Size, StrikeThrough, Underline, Weight (Ejemplo de las propiedades)

El siguiente ejemplo demuestra un objeto Font y las propiedades Bold, Italic, Size, StrikeThrough, Underline y Weight relacionadas con las fuentes. Puede manipular las propiedades de la fuente de un objeto directamente o utilizando un alias, como muestra también este ejemplo.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Cuatro controles ToggleButton llamados desde ToggleButton1 hasta ToggleButton4.

•	Un segundo control Label y un control TextBox llamados Label2 y TextBox1.

Dim MiFuente As StdFont

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        MiFuente.Bold = True            'Utilizando el alias MiFuente para controlar la fuente

        ToggleButton1.Caption = "Bold activada"

        MiFuente.Size = 22              'Aumenta el tamaño de la fuente

    Else

        MiFuente.Bold = False

        ToggleButton1.Caption = "Bold desactivada"

        MiFuente.Size = 8               'Vuelve el tamaño de la fuente al tamaño inicial

    End If

    TextBox1.Text = Str(MiFuente.Weight)  'Bold y Weight están relacionados

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        Label1.Font.Italic = True            'Utilizando Label1.Font directamente

        ToggleButton2.Caption = "Italic activada"

    Else

        Label1.Font.Italic = False

        ToggleButton2.Caption = "Italic desactivada"

    End If

End Sub

Private Sub ToggleButton3_Click()

    If ToggleButton3.Value = True Then

        Label1.Font.Strikethrough = True            'Utilizando Label1.Font directamente

        ToggleButton3.Caption = "StrikeThrough activada"

    Else

        Label1.Font.Strikethrough = False

        ToggleButton3.Caption = "StrikeThrough desactivada"

    End If

End Sub

Private Sub ToggleButton4_Click()

    If ToggleButton4.Value = True Then

        MiFuente.Underline = True            'Utilizando el alias MiFuente para Label1.Font

        ToggleButton4.Caption = "Underline activada"

    Else

        Label1.Font.Underline = False

        ToggleButton4.Caption = "Underline desactivada"

    End If

End Sub

Private Sub UserForm_Initialize()

    Set MiFuente = Label1.Font

    ToggleButton1.Value = True

    ToggleButton1.Caption = "Bold activada"

    Label1.AutoSize = True	'Establecer el tamaño de Label1

    Label1.AutoSize = False

    ToggleButton2.Value = False

    ToggleButton2.Caption = "Italic desactivada"

    ToggleButton3.Value = False

    ToggleButton3.Caption = "StrikeThrough desactivada"

    ToggleButton4.Value = False

    ToggleButton4.Caption = "Underline desactivada"

    Label2.Caption = "Grosor de la fuente "

    TextBox1.Text = Str(Label1.Font.Weight)

    TextBox1.Enabled = False

End Sub


Border, Color (Ejemplo de las mejoras)

El siguiente ejemplo demuestra las propiedades BorderStyle y SpecialEffect, presentando cada borde disponible mediante estas propiedades. El ejemplo también demuestra cómo controlar los valores del color utilizando las propiedades BackColor, BackStyle, BorderColor y ForeColor.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Seis controles TextBox llamados desde TextBox1 hasta TextBox6.

•	Dos controles ToggleButton llamados ToggleButton1 y ToggleButton2.

Private Sub UserForm_Initialize()

' Inicializa cada control TextBox con un estilo de

' borde o un efecto especial y colores de primer plano
' y fondo

'TextBox1 utiliza inicialmente un estilo de borde

TextBox1.Text = "Estilo de borde - Simple"

TextBox1.BorderStyle = fmBorderStyleSingle

TextBox1.BorderColor = RGB(255, 128, 128)   'Color – Salmón

TextBox1.ForeColor = RGB(255, 255, 0)       'Color - Amarillo

TextBox1.BackColor = RGB(0, 128, 64)        'Color - Verde #2

'Los TextBox desde el 2 hasta el 6 utilizan inicialmente efectos especiales

TextBox2.Text = "Liso"

TextBox2.SpecialEffect = fmSpecialEffectFlat

TextBox2.ForeColor = RGB(64, 0, 0)          'Color - Marrón

TextBox2.BackColor = RGB(0, 0, 255)         'Color - Azul

' Asegúrese de que el estilo del fondo del control TextBox2 es opaco inicialmente.

TextBox2.BackStyle = fmBackStyleOpaque

TextBox3.Text = "Grabado"

TextBox3.SpecialEffect = fmSpecialEffectEtched

TextBox3.ForeColor = RGB(128, 0, 255)       'Color - Púrpura

TextBox3.BackColor = RGB(0, 255, 255)       'Color - Aguamarina

'Define la propiedad BorderColor para uso posterior (cuando borderstyle=fmBorderStyleSingle)

TextBox3.BorderColor = RGB(0, 0, 0)         'Color - Negro

TextBox4.Text = "Rugoso"

TextBox4.SpecialEffect = fmSpecialEffectBump

TextBox4.ForeColor = RGB(255, 0, 255)       'Color - Fucsia

TextBox4.BackColor = RGB(0, 0, 100)         'Color - Azul marino

TextBox5.Text = "En relieve"

TextBox5.SpecialEffect = fmSpecialEffectRaised

TextBox5.ForeColor = RGB(255, 0, 0)         'Color - Rojo

TextBox5.BackColor = RGB(128, 128, 128)     'Color - Gris

TextBox6.Text = "Bajo relieve"

TextBox6.SpecialEffect = fmSpecialEffectSunken

TextBox6.ForeColor = RGB(0, 64, 0)          'Color - Oliva

TextBox6.BackColor = RGB(0, 255, 0)         'Color - Verde #1

ToggleButton1.Caption = "Intercambiar estilos"

ToggleButton2.Caption = "Fondo transparente/opaco"

End Sub

Private Sub ToggleButton1_Click()

'Intercambia los bordes entre TextBox1 y TextBox3

If ToggleButton1.Value = True Then

'Cambia TextBox1 de BorderStyle a Grabado

TextBox1.Text = "Grabado"

TextBox1.SpecialEffect = fmSpecialEffectEtched

'Cambia TextBox3 de Grabado a BorderStyle

TextBox3.Text = " Estilo de borde - Simple "

TextBox3.BorderStyle = fmBorderStyleSingle

Else

'Vuelve TextBox1 a BorderStyle

TextBox1.Text = " Estilo de borde - Simple "

TextBox1.BorderStyle = fmBorderStyleSingle

'Vuelve TextBox3 a Grabado

TextBox3.Text = "Grabado"

TextBox3.SpecialEffect = fmSpecialEffectEtched

End If

End Sub

Private Sub ToggleButton2_Click()

'Establece el fondo a opaco o transparente

If ToggleButton2.Value = True Then

'Cambia TextBox2 a un fondo transparente

TextBox2.BackStyle = fmBackStyleTransparent

Else

'Vuelve TextBox2 al fondo opaco

TextBox2.BackStyle = fmBackStyleOpaque

End If

End Sub


Column (Ejemplo de la propiedad)

'

El siguiente ejemplo carga una matriz bidimensional con datos y, por turnos, carga dos controles ListBox utilizando las propiedades Column y List. Observe que la propiedad Column transpone los elementos de la matriz durante la carga.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene dos controles ListBox llamados ListBox1 y ListBox2.

Dim MiMatriz(6,3)

Private Sub UserForm_Initialize()

    Dim i As Single

    ListBox1.ColumnCount = 3        'El primer cuadro de texto contiene tres columnas de datos

    ListBox2.ColumnCount = 6        'El segundo cuadro contiene seis columnas de datos

    'Carga valores enteros en la primera columna de MiMatriz

    For i = 0 To 5

        MiMatriz(i, 0) = i

    Next i

    'Carga las columnas 2 y 3 de MiMatriz

    MiMatriz(0, 1) = "Cero"

    MiMatriz(1, 1) = "Uno"

    MiMatriz(2, 1) = "Dos"

    MiMatriz(3, 1) = "Tres"

    MiMatriz(4, 1) = "Cuatro"

    MiMatriz(5, 1) = "Cinco"

    MiMatriz(0, 2) = "Zero"

    MiMatriz(1, 2) = "Un ou Une"

    MiMatriz(2, 2) = "Deux"

    MiMatriz(3, 2) = "Trois"

    MiMatriz(4, 2) = "Quatre"

    MiMatriz(5, 2) = "Cinq"

    'Cargar datos en ListBox1 y ListBox2

    ListBox1.List() = MiMatriz

    ListBox2.Column() = MiMatriz

End Sub


ColumnWidths (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad ColumnWidths para cambiar los anchos de las columnas de un control ListBox de múltiples columnas. El ejemplo también utiliza tres controles TextBox para especificar los anchos de columna individuales y utiliza el evento Exit para especificar las unidades de medida de cada control TextBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control ListBox llamado ListBox1.

•	Tres controles TextBox llamados TextBox1 hasta TextBox3.

•	Un control CommandButton llamado CommandButton1.

Intente escribir el valor 0 para ocultar una columna.

Dim MiMatriz(2, 3) As String

Private Sub CommandButton1_Click()

'ColumnWidths necesita un valor para cada columna separado por puntos y comas

ListBox1.ColumnWidths = TextBox1.Text & ";" & TextBox2.Text & ";" & TextBox3.Text

End Sub

Private Sub TextBox1_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths acepta puntos (no unidades), pulgadas o centímetros; hace que pulgadas sea el predeterminado

If Not (InStr(TextBox1.Text, "pda") > 0 Or InStr(TextBox1.Text, "cm") > 0) Then

TextBox1.Text = TextBox1.Text & " pda"

End If

End Sub

Private Sub TextBox2_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths acepta puntos (no unidades), pulgadas o centímetros; hace que pulgadas sea el predeterminado

If Not (InStr(TextBox2.Text, "pda") > 0 Or InStr(TextBox2.Text, "cm") > 0) Then

TextBox2.Text = TextBox2.Text & " pda"

End If

End Sub

Private Sub TextBox3_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths acepta puntos (no unidades), pulgadas o centímetros; hace que pulgadas sea el predeterminado

If Not (InStr(TextBox3.Text, "pda") > 0 Or InStr(TextBox3.Text, "cm") > 0) Then

TextBox3.Text = TextBox3.Text & " pda"

End If

End Sub

Private Sub UserForm_Initialize()

Dim i, j, Rows As Single

ListBox1.ColumnCount = 3

Rows = 2

For j = 0 To ListBox1.ColumnCount - 1

For i = 0 To Rows - 1

MiMatriz(i, j) = "Fila " & i & ", Columna " & j

Next i

Next j

ListBox1.List() = MiMatriz           'Carga MiMatriz en el control ListBox1

TextBox1.Text = "1 pda"              'Inicialmente columnas de 1 pda

TextBox2.Text = "1 pda"

TextBox3.Text = "1 pda"

End Sub


ControlTipText (Ejemplo de la propiedad)

El siguiente ejemplo define la propiedad ControlTipText para tres controles CommandButton y dos objetos Page en un control MultiPage.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control MultiPage llamado MultiPage1.

•	Tres controles CommandButton llamados CommandButton1 hasta CommandButton3.

Nota   Para un objeto Page individual de un control MultiPage, ControlTipText pasa a habilitada cuando un control MultiPage o un control de la página actual del control MultiPage tiene el enfoque.

Private Sub UserForm_Initialize()

MultiPage1.Page1.ControlTipText = "Estamos en la página 1"

MultiPage1.Page2.ControlTipText = "Ahora en la página 2"

CommandButton1.ControlTipText = "¡Y ahora una"

CommandButton2.ControlTipText = "sugerencia de"

CommandButton3.ControlTipText = "sus controles!"

End Sub


CurLine, CurTargetX y CurX (Ejemplo de las propiedades)

El siguiente ejemplo sigue los valores de la propiedad CurLine, CurTargetX y CurX en un control TextBox de múltiples líneas. Estos valores cambian en el evento KeyUp cuando el usuario escribe en la propiedad Text, mueve el punto de inserción y extiende la selección utilizando el teclado.

Para utilizar este ejemplo, siga estos pasos:

1.	Copie este código de ejemplo en la parte Declaraciones de un formulario.

2.	Agregue un control TextBox grande llamado TextBox1 al formulario.

3.	Agregue tres controles TextBox llamados TextBox2, TextBox3 y TextBox4 en una columna.

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

TextBox2.Text = TextBox1.CurLine

TextBox3.Text = TextBox1.CurX

TextBox4.Text = TextBox1.CurTargetX

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.Text = "Escriba aquí el texto. Utilice CTRL + ENTRAR para iniciar una línea nueva."

End Sub


HideSelection (Ejemplo de la propiedad)

'

El siguiente ejemplo demuestra la propiedad HideSelection en el contexto de un formulario simple o más de un formulario. El usuario puede seleccionar texto en un control TextBox y presionar TAB para ir a otro controles del formulario o para transferir el enfoque a un segundo formulario. Este ejemplo de código también utiliza el método SetFocus y las propiedades EnterFieldBehavior, MultiLine y Value.

Para utilizar este ejemplo, siga estos pasos:

1.	Copie este código de ejemplo (excepto para la subrutina del último evento) en la parte Declaraciones de un formulario.

2.	Agregue un control TextBox grande llamado TextBox1, un control ToggleButton llamado ToggleButton1 y un control CommandButton llamado CommandButton1.

3.	Inserte un segundo formulario a este proyecto llamado UserForm2.

4.	Pegue la subrutina del último evento de esta lista en la sección Declaraciones de UserForm2.

5.	En este formulario, agregue un control CommandButton llamado CommandButton1.

6.	Ejecute UserForm1.

' ***** Código para UserForm1 *****

Private Sub CommandButton1_Click()

TextBox1.SetFocus

UserForm2.Show                             'Trae el segundo formulario.

End Sub

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

TextBox1.HideSelection = False

ToggleButton1.Caption = "Selección visible"

Else

TextBox1.HideSelection = True

ToggleButton1.Caption = "Selección oculta"

End If

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

'Llena la TextBox

TextBox1.Text = "SelText indica el punto de inicio del texto seleccionado o el punto de inserción si no hay texto seleccionado." _

& Chr$(10) & Chr$(13) & "La propiedad SelStart siempre es válida, incluso cuando el control no tiene el enfoque. Establecer SelStart a un valor menos que cero genera un error. " _

& Chr$(10) & Chr$(13) & "Cambiar el valor de SelStart cancela cualquier selección existente en el control, coloca un punto de inserción en el texto y establece la propiedad SelLength a cero."

TextBox1.HideSelection = True

ToggleButton1.Caption = "Selección oculta "

ToggleButton1.Value = False

End Sub

'

' ***** Código para UserForm2 *****

Private Sub CommandButton1_Click()

UserForm2.Hide

End Sub


Picture, PicturePosition (Ejemplo de las propiedades)

El siguiente ejemplo utiliza un control ComboBox para mostrar las opciones de posición de una imagen para un control. Cada vez que el usuario hace clic en una opción de la lista, la imagen y el título se actualizan en el control CommandButton. Este ejemplo de código también utiliza el método AddItem para llenar las opciones del control ComboBox.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control Label llamado Label1.

•	Un control CommandButton llamado CommandButton1.

•	Un control ComboBox llamado ComboBox1.

Private Sub UserForm_Initialize()

Label1.Left = 18

Label1.Top = 12

Label1.Height = 12

Label1.Width = 250

Label1.Caption = "Seleccionar la posición relativa de la imagen respecto al título."

'Agrega entradas a la lista del cuadro combinado.
'El valor de cada entrada coincide con el valor de

'ListIndex correspondiente en el cuadro combinado.

ComboBox1.AddItem "Izquierda Superior"        'ListIndex = 0

ComboBox1.AddItem "Izquierda Centro"     'ListIndex = 1

ComboBox1.AddItem "Izquierda inferior"     'ListIndex = 2

ComboBox1.AddItem "Derecha Superior"       'ListIndex = 3

ComboBox1.AddItem "Derecha Centro"    'ListIndex = 4

ComboBox1.AddItem "Derecha Inferior"    'ListIndex = 5

ComboBox1.AddItem "Arriba Izquierda"      'ListIndex = 6

ComboBox1.AddItem "Arriba Centro"    'ListIndex = 7

ComboBox1.AddItem "Arriba Derecha"    'ListIndex = 8

ComboBox1.AddItem "Abajo Izquierda"      'ListIndex = 9

ComboBox1.AddItem "Abajo Centro"    'ListIndex = 10

ComboBox1.AddItem "Abajo Derecha"    'ListIndex = 11

ComboBox1.AddItem "Centrado"        'ListIndex = 12

ComboBox1.Style = fmStyleDropDownList  'Utiliza una lista desplegable

ComboBox1.BoundColumn = 0            'Los valores de cuadro combinado son los valores de ListIndex

ComboBox1.ListIndex = 0              'Establece el cuadro combinado a la primera entrada

ComboBox1.Left = 18

ComboBox1.Top = 36

ComboBox1.Width = 90

ComboBox1.ListWidth = 90

'Inicializa CommandButton1

CommandButton1.Left = 230

CommandButton1.Top = 36

CommandButton1.Height = 120

CommandButton1.Width = 120

'Nota: Asegúrese de que hace referencia a un archivo de mapa de bits que existe en su

'Nota: sistema y de que incluye la ruta de acceso en el nombre del archivo.

CommandButton1.Picture = LoadPicture("c:\windows\argyle.bmp")

CommandButton1.PicturePosition = ComboBox1.Value

End Sub

Private Sub ComboBox1_Click()

Select Case ComboBox1.Value

Case 0  'Izquierda Superior

CommandButton1.Caption = "Izquierda superior"

CommandButton1.PicturePosition = fmPicturePositionLeftTop

Case 1  'Izquierda Centro

CommandButton1.Caption = "Izquierda Centro"

CommandButton1.PicturePosition = fmPicturePositionLeftCenter

Case 2  'Izquierda Inferior

CommandButton1.Caption = "Izquierda Inferior"

CommandButton1.PicturePosition = fmPicturePositionLeftBottom

Case 3  'Derecha Superior

CommandButton1.Caption = "Derecha Superior"

CommandButton1.PicturePosition = fmPicturePositionRightTop

Case 4  'Derecha Centro

CommandButton1.Caption = "Derecha Centro"

CommandButton1.PicturePosition = fmPicturePositionRightCenter

Case 5  'Derecha Inferior

CommandButton1.Caption = "Derecha Inferior"

CommandButton1.PicturePosition = fmPicturePositionRightBottom

Case 6  'Arriba Izquierda

CommandButton1.Caption = "Arriba Izquierda"

CommandButton1.PicturePosition = fmPicturePositionAboveLeft

Case 7  'Arriba Centro

CommandButton1.Caption = "Arriba Centro"

CommandButton1.PicturePosition = fmPicturePositionAboveCenter

Case 8  'Arriba Derecha

CommandButton1.Caption = "Arriba Derecha"

CommandButton1.PicturePosition = fmPicturePositionAboveRight

Case 9  'Abajo Izquierda

CommandButton1.Caption = "Abajo Izquierda"

CommandButton1.PicturePosition = fmPicturePositionBelowLeft

Case 10 'Abajo Centro

CommandButton1.Caption = "Abajo Centro"

CommandButton1.PicturePosition = fmPicturePositionBelowCenter

Case 11 'Abajo Derecha

CommandButton1.Caption = "Abajo Derecha"

CommandButton1.PicturePosition = fmPicturePositionBelowRight

Case 12 'Centrado

CommandButton1.Caption = "Centrado"

CommandButton1.PicturePosition = fmPicturePositionCenter

End Select

End Sub


Enlazar un control con una hoja de cálculo (Ejemplo)

El siguiente ejemplo utiliza un rango de celdas de una hoja de cálculo en un control ListBox y, cuando el usuario selecciona una fila de la lista, muestra índice de la fila en otra celda de la hoja de cálculo. Este ejemplo de código también utiliza las propiedades RowSource, BoundColumn y ControlSource.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control ListBox llamado ListBox1. En la hoja de cálculo, escriba datos en las celdas A1:E4. También puede necesitar asegurarse que la celda A6 no contiene datos.

Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 5

ListBox1.RowSource = "a1:e4"

ListBox1.ControlSource = "a6"

ListBox1.BoundColumn = 0          'Coloca el ListIndex en la celda a6

End Sub


Text Selection (Ejemplo de las propiedades)

El siguiente ejemplo sigue la selección de las propiedades relacionadas (SelLength, SelStart y SelText) que cambian cuando el usuario mueve el punto de inserción y extiende la selección utilizando el teclado. Este ejemplo también utiliza las propiedades Enabled y EnterFieldBehavior.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un control TextBox grande llamado TextBox1.

•	Tres controles TextBox en una columna llamados desde TextBox2 hasta TextBox4.

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

TextBox2.Text = TextBox1.SelStart

TextBox3.Text = TextBox1.SelLength

TextBox4.Text = TextBox1.SelText

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

TextBox1.Text = "Escriba aquí el texto. Utilice CTRL+ENTRAR para iniciar una línea nueva."

End Sub


Tener acceso a controles mediante Controls (Ejemplo de la colección)

El siguiente ejemplo tiene acceso a controles individuales de la colección Controls utilizando un bucle For Each...Next. Cuando el usuario presiona el control CommandButton1, los otros controles se colocan a lo largo del borde izquierdo del formulario utilizando el método Move.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene un control CommandButton llamado CommandButton1 y otros controles diversos.

Dim CtrlAlto As Single

Dim CtrlSuperior As Single

Dim CtrlIntervalo As Single

Private Sub CommandButton1_Click()

Dim MiControl As Control

CtrlSuperior = 5

For Each MiControl In Controls

If MiControl.Name = "CommandButton1" Then

'No mueva o cambie el tamaño de este.

Else

'Método Move utilizando argumentos con nombre

MiControl.Move Top:=CtrlSuperior, Height:=CtrlAlto, Left:=5

'Método Move utilizando argumentos sin nombre(izquierda, arriba, ancho, alto)

'MiControl.Move 5, CtrlSuperior, ,CtrlAlto

'Calcula la coordenada superior para el siguiente control

CtrlSuperior = CtrlSuperior + CtrlAlto + CtrlIntervalo

End If

Next

End Sub

Private Sub UserForm_Initialize()

CtrlAlto = 20

CtrlIntervalo = 5

CommandButton1.Caption = "Haga clic para mover los controles "

CommandButton1.AutoSize = True

CommandButton1.Left = 120

CommandButton1.Top = CtrlSuperior

End Sub


Cycle (Ejemplo de la propiedad)

El siguiente ejemplo define la propiedad Cycle para un objeto Frame y dos objetos Page en un control MultiPage.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Un objeto Frame llamado Frame1.

•	Un control MultiPage llamado MultiPage1 que contiene dos objetos llamados Page1 y Page2.

•	Dos controles CommandButton llamados CommandButton1 y CommandButton2.

En el formulario, coloque en el objeto Frame y en cada objeto Page del control MultiPage un par de controles, así podrá ver cómo la propiedad Cycle afecta al orden de tabulación del control Frame y MultiPage.

El usuario se debe trasladar entre los controles para observar cómo la propiedad Cycle afecta al orden de tabulación. Presionar CommandButton1 extiende el orden de tabulación para incluir controles en los objetos Frame y Page. Presionar CommandButton2 restringe el orden de tabulación.

Private Sub RestrictCycles()

'Limita el orden de tabulación al objeto Frame y Page

    Frame1.Cycle = fmCycleCurrentForm

    MultiPage1.Page1.Cycle = fmCycleCurrentForm

    MultiPage1.Page2.Cycle = fmCycleCurrentForm

End Sub

Private Sub UserForm_Initialize()

RestrictCycles

End Sub

Private Sub CommandButton1_Click()

'Extiende el orden de tabulación a los subformularios (los objetos Frame y Page)

    Frame1.Cycle = fmCycleAllForms

    MultiPage1.Page1.Cycle = fmCycleAllForms

    MultiPage1.Page2.Cycle = fmCycleAllForms

End Sub

Private Sub CommandButton2_Click()

RestrictCycles

End Sub


Move con una colección Controls (Ejemplo del método)

El siguiente ejemplo demuestra el movimiento de todos los controles en un formulario utilizando el método Move con la colección Controls. El usuario hace clic en el control CommandButton para mover los controles.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene al control CommandButton llamado CommandButton1 y otros controles diversos.

Private Sub CommandButton1_Click()

    'Mueve cada control 25 puntos a la derecha y 25 puntos arriba en el formulario.

Controls.Move 25, -25

End Sub


Parent (Ejemplo de la propiedad)

El siguiente ejemplo utiliza la propiedad Parent para hacer referencia al control o formulario que contiene un control específico.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

•	Dos controles Label llamados Label1 y Label2.

•	Un control CommandButton llamado CommandButton1.

•	Uno o más controles adicionales de su elección.

Dim MiControl As Object

Dim MiPrimario As Object

Dim ÍndiceControles As Integer

Private Sub UserForm_Initialize()

    ÍndiceControles = 0

    CommandButton1.Caption = "Obtener control y Parent"

    CommandButton1.AutoSize = True

    CommandButton1.WordWrap = True

End Sub

Private Sub CommandButton1_Click()

    'Procesa la colección Controls para UserForm

    Set MiControl = Controls.Item(ÍndiceControles)

    Set MiPrimario = MiControl.Parent

    Label1.Caption = MiControl.Name

    Label2.Caption = MiPrimario.Name

    'Prepara el índice para el siguiente control del Userform

    ÍndiceControles = ÍndiceControles + 1

    If ÍndiceControles >= Controls.Count Then

        ÍndiceControles = 0

    End If

End Sub