TEMA 5: Propiedades
Cada tipo de control tiene predefinidas un conjunto de propiedades, como título, nombre, color...etc. Las propiedades de un control representan todos los datos que por definición están asociados con ese control. Para cambiar las propiedades tenemos que ir a la ventana de propiedades de ese control. Algunas propiedades son comunes para varios controles u objetos y otras son únicas para un control determinado.
También podemos cambiar las propiedades mediante código. Para cambiar el nombre de una propiedad, primero escribimos el Objeto.Propiedad = Valor Ejemplo:
Command1.Caption = "Salir"
Command1.Enabled = TrueAlgunas propiedades como por ejemplo la propiedad Font, está constituida a su vez por un objeto. Por tanto, dicho objeto contendrá a su vez una serie de propiedades, que serán las que realmente permitan configurar el tipo de letra y su aspecto. Para cambiar la propiedad mediante código o en tiempo de ejecución escribiremos Objeto.Font.Propiedad = Valor Ejemplo:
Command1.Font.Name = "Arial"
Command1.Font.Size = 10
Command1.Font.Bold = TrueEs importante que los nombres de los objetos vayan precedidos de un prefijo para que sea más fácil su identificación (propiedad Name). Ver el tema de Formularios y Controles donde se muestran los prefijos utilizados. Por ejemplo en nuestro programa de Mi primera aplicación, el Command2 que realiza la acción de salir del programa, podríamos llamarlo CmdSalir.
A continuación se muestran las propiedades que iremos utilizando en este curso.
Nota: es importante comprobar está página, porque se actualizará constantemente a medida que avancemos en el curso, incluyendo más propiedades.
- Alignment: determina la alineación de los controles. Se aplica a los siguientes controles:
CheckBox y OptionButton: es de sólo lectura en tiempo de ejecución. Los valores admitidos son:
| Constante | Valor | Descripción |
| vbLeftJustify | 0 | (Predeterminado) El texto está alineado a la izquierda y el control está alineado a la derecha. |
| vbRightJustify | 1 | El texto está alineado a la derecha y el control está alineado a la izquierda. |
Label y TextBox: es de sólo lectura en tiempo de ejecución para un control TextBox; si queremos que en este control esté alineado a la derecha o al centro tiene que estar la propiedad MultiLine a True. Los valores admitidos son:
| Constante | Valor | Descripción |
| vbLeftJustify | 0 | (Predeterminado) El texto está alineado a la izquierda. |
| vbRightJustify | 1 | El texto está alineado a la derecha. |
| vbCenter | 2 | El texto está centrado. |
- Appearance: establece si el control se dibuja sin efectos visuales o por el contrario con efectos visuales 3D.
- AutoRedraw: se utiliza para evitar que se pierdan los dibujos de los Formularios y PictureBox, cuando estos han estado total o parcialmente ocultos por otras ventanas o como resultado de un cambio de posición o tamaño. Si está a True los gráficos y el texto se escriben en la pantalla y en una imagen almacenada en memoria. El objeto no recibe eventos Paint; se vuelve a dibujar cuando es necesario, usando la imagen almacenada en memoria. Cuando es False (predeterminado) los gráficos y el texto se escriben solamente en la pantalla. Visual Basic invoca el evento Paint del objeto cuando se necesita volver a dibujar dicho objeto. Ejemplo:
AutoRedraw = True
Circle (ScaleWidth / 2, ScaleHeight / 2), ScaleHeight / 2Los gráficos realizados mientras AutoRedraw se encuentra a True son siempre persistentes, aún cuando la propiedad se ponga a False posteriormente (consume bastante memoria).
Existen tres niveles distintos sobre los que se sitúan todos los objetos dibujados sobre un contenedor. Estos tres niveles determinan qué dibujos se visualizarán sobre otros:
- Nivel Inferior: sobre él se sitúan los dibujos realizados con los métodos gráficos.
- Nivel Medio: sobre él se sitúan los controles Line y Shape.
- Nivuel Superior: sobre él se sitúan el resto de controles.
- AutoSize: autotamaño. Cuando se encuentra a True, las dimensiones de un control Label se ajustan automáticamente al tamaño necesario para visualizar todo el texto. En un control PictureBox se ajustan al tamaño del dibujo.
- BackColor: indica el color de fondo. Esta propiedad se pasa por alto cuando el valor de la propiedad BackStyle es transparente. Ver Tabla 1.
- BackStyle: indica si los objetos que quedan bajo un control Label o Shape pueden ser visualizados a través de ella. Los valores posibles son transparente y opaco.
- BorderColor: color de borde de algunas figuras. Se aplica a los controles Line y Shape.
- BorderWidth: devuelve o establece el ancho del borde. Se aplica a controles Line y Shape. Admite valores entre 1 y 8192. Si el valor de la propiedad BorderWidth es mayor que 1 los únicos valores efectivos de BorderStyle de un control serán 1 (Sólido) y 6 (Sólido interior).
- Caption: indica el texto que acompañará al mismo. En los Formularios, será visualizado en su barra de títulos. En el caso de los controles Label, CommandButton ...etc, se mostrará en su interior. Puede utilizar la propiedad Caption para asignar una tecla de acceso a un control, mediante el signo & inmediatamente delante del carácter que desea designar como tecla de acceso. El carácter estará subrayado. Presione la tecla ALT y el carácter subrayado para mover el enfoque a ese control.
- Cancel: cuando la propiedad Cancel de un CommandButton se establece como True, pulsar la tecla ESC produce el mismo efecto que hacer clic en dicho botón. En un Formulario sólo puede haber un CommandButton que tenga su propiedad Cancel a True, el resto se establecerá automáticamente como False.
- Columns: cuando esta propiedad se establece a 0 (defecto) todos los elementos de un control ListBox se muestran en una sola columna, si es 1 o más, los elementos se organizan con un diseño de varias columnas. Se añadirán barras de desplazamiento horizontal a la lista cuando sea necesario.
- ControlBox: indica si el Formulario dispondrá o no de menú de control en su barra de título.
- CurrentX, CurrentY: devuelven o establecen las coordenadas horizontal o vertical para el siguiente método gráfico o de impresión. No están disponibles en tiempo de diseño. Las coordenadas se expresan en twips o la unidad de medida actual. Ejemplo:
Form1.ScaleMode = 4
CurrentX = 10: CurrentY = 2: Print "Hola"
- Default: si es True pulsar la tecla INTRO produce el mismo efecto que hacer clic sobre el botón. En un Formulario sólo puede haber un CommandButton que tenga su propiedad Default a True, el resto se establecerá automáticamente como False.
- DisabledPicture: parecido a la propiedad Picture, sólo muestra la imagen cuando el botón se encuentra deshabilitado (propiedad Enabled a False) y en modo gráfico (propiedad Style con valor 1). Se aplica a CommandButton, OptionButton y CheckBox; en los dos últimos el fondo del botón se difumina, pero no la imagen del botón.
- DownPicture: parecido a la propiedad Picture, sólo muestra la imagen cuando el botón se encuentra pulsado y en modo gráfico (propiedad Style con valor 1). Se aplica a CommandButton, OptionButton y CheckBox; en los dos últimos el botón se difumina, pero no la imagen del botón.
- DrawMode: devuelve o establece un valor que determina la apariencia del resultado de un método gráfico (para Formularios y PictureBox) o la apariencia de un control Line o Shape. Los valores admitidos aparecen en la Tabla 4. El efecto exacto de un valor de DrawMode depende del modo en que el color de una línea dibujada en tiempo de ejecución se combina con los colores de la pantalla. Los valores 1, 6, 7, 11, 13 y 16 producen los mejores resultados.
- DrawStyle: devuelve o establece un valor que determina el estilo de línea del resultado de métodos gráficos. Los valores admitidos aparecen en la Tabla 5.
- DrawWidth: devuelve o establece el ancho de línea para el resultado de los métodos gráficos. El valor va de 1 a 32767 que representa el ancho de la línea en píxeles. El valor predeterminado es 1, es decir, un pixel de ancho.
- Drive: devuelve el nombre de la unidad seleccionada de un control DriveListBox. Cuando se realiza un cambio se produce el evento Change. No está disponible en tiempo de diseño.
- Enabled: indica si el control puede o no responder a los eventos producidos por el usuario.
- FillColor: color con el que se rellenan algunas figuras (control Shape). Se aplica también a los métodos gráficos (Line, Circle).
- FillStyle: devuelve o establece el patrón usado para llenar las figuras (control Shape). Se aplica también a los métodos gráficos (Line, Circle). Los valores admitidos aparecen el la Tabla 6.
- Font: establece el tipo de letra, tamaño, atributos y efectos de control. Ver Tabla 7.
- ForeColor: indica el color del primer plano del texto y de los gráficos. Ver Tabla 1.
- Height: establece la altura de un control. Para el objeto Form (Formulario) esta propiedad se mide siempre en twips (un twip es una unidad de medida de la pantalla equivalente a 1/20 de punto de impresora, es decir, en un centímetro entrarán 567 twip). La propiedad Height no puede modificarse en los controles DriveListBox ni ComboBox, en los cuales el valor de la propiedad Style es 0 o 2.
- Icon: permite especificar el icono que será visualizado en la barra de título del Formulario en tiempo de ejecución. La especificación de esta propiedad en tiempo de diseño se realiza mediante la selección de un archivo con la extensión ICO en su cuadro de diálogo. La asignación de valores puede realizarse a partir de las propiedades Icon y DragIcon de otro objeto, o utilizando la función LoadPicture().
- Index: se utiliza para realizar una matriz de controles. Es de sólo lectura.
- Interval: especifica el intervalo para el control Timer en milisegundos (puede variar entre 1 y 65535; un valor de 1000 es aproximadamente 1 segundo).
- LargeChange: devuelve o establece el cambio que se producirá en el valor de la propiedad Value de los controles HScrollBar y VScrollBar, cuando el usuario hace clic en el área entre el cuadro de desplazamiento y la flecha de desplazamiento. Por defecto es 1.
- Left: cambia la posición horizontal de un control. En un Formulario siempre es en twips.
- List: para los controles ListBox y ComboBox contienen el texto de cada uno de los elementos que componen la lista, en forma de matriz de cadenas. Su sintaxis es
List(n). Ejemplo:For Indice = 0 To List1.ListCount - 1
Print List1.List(Indice)
Next Indice
- ListCount: para los controles ListBox y ComboBox indican el número de elementos que contiene la lista. Siempre es una unidad mayor que el valor máximo de la propiedad ListIndex. Esta propiedad no está disponible en tiempo de diseño.
- ListIndex: para controles ListBox y ComboBox devuelve o establece la posición del elemento que se encuentra actualmente seleccionado. El valor índice del primer elemento es de 0, 1, 2, ...etc. Si no hay seleccionado ningún elemento ListIndex se establece en -1. Esta propiedad no está disponible en tiempo de diseño.
- Locked: indica si el texto está bloqueado, de forma que el usuario no pueda modificarlo. La principal diferencia de esta propiedad con Enabled es que, aunque el texto no puede ser editado, el control si puede capturar el foco. Se aplica a controles TextBox y ComboBox.
- Max, Min: devuelve o establece el valor máximo y mínimo de la propiedad Value de los controles HScrollBar y VScrollBar cuando el cuadro de desplazamiento se encuentra en el extremo inferior o derecho y en el extremo superior o izquierdo. El número comprendido es un entero entre -32768 y 32767.
- MaxButton: indica si el Formulario se visualizará con el botón Maximizar.
- MaxLength: longitud máxima. Esta propiedad se establece en 0 (omisión), el control TextBox aceptará tantos caracteres como el usuario desee, si establece un valor distinto de 0, Visual Basic limita la entrada al número de caracteres especificados (máximo 32 Kb).
- MinButton: indica si el Formulario se visualizará con el botón Minimizar.
- MouseIcon: permite establecer un puntero de ratón personalizado a partir de un icono. Se utiliza cuando el valor de la propiedad MousePointer es 99.
- MousePointer: permite alterar el aspecto del puntero del ratón. Para saber los valores que tienen y sus constantes, ver la Tabla 8. La opción de reloj de arena (11) es útil para indicar que el usuario debe esperar a que termine un proceso de operación.
- Moveable: devuelve o establece un valor que indica si es posible mover un Formulario.
- MultiLine: líneas múltiples, se aplica al control TextBox. Poner la propiedad a False, para evitar que el usuario introduzca más de una línea de texto. Cuando es True el usuario puede pulsar Intro para retornos de carro y continuar la introducción de texto en la siguiente línea (se suele utilizar junto con ScrollBars). Es de sólo lectura en tiempo de ejecución.
- Name: nombre del control. Constará de un conjunto de hasta 40 caracteres, debiendo ser el primero una letra. No se admiten espacios en blanco ni los signos de puntuación, sí el subrayado _.
- PasswordChar: indica si el control TextBox actuará como soporte para la introducción de contraseñas (passwords). Para ello, debe especificarse un carácter no nulo, que generalmente es un asterisco (*). Así, todos los caracteres que vaya tecleando el usuario se visualizarán como dicho carácter, aunque el texto tecleado quede oculto, la propiedad Text seguirá registrando el texto correctamente. Para desactivar este modo de funcionamiento debe asignarse a esta propiedad una cadena vacía (""). La propiedad MultiLine debe estar a False.
- Picture: permite mostrar una imagen o dibujo en controles como Formularios, PictureBox, Image, CommandButton, OptionButton y CheckBox. Ver Tabla 9. En tiempo de ejecución es posible asignar esta propiedad mediante código, asignándole el valor de la propiedad Picture de cualquier otro control o utilizando la función LoadPicture. Ejemplo: Image.Picture = Form1.Picture
- ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight: las dos primeras propiedades, establecen las coordenadas horizontal y vertical de los bordes derecho izquierdo y superior de un objeto a utilizar o al situar controles (por defecto es 0). Las dos segundas propiedades, indican la anchura y altura del interior de un objeto al utilizar métodos gráficos o al colocar controles. Al establecer valores positivos en estas propiedades, las coordenadas se incrementan de arriba abajo y de izquierda a derecha. Si se establecen valores negativos, las coordenadas se incrementan de abajo y de derecha a izquierda. Se aplica a los Formularios y controles PictureBox. Ejemplo:
'Dibuja las dos diagonales de un Formulario
Form1.Line (0, 0)-(Form1.ScaleWidth, Form1.ScaleHeight)
Form1.Line (0, Form1.ScaleHeight)-(Form1.ScaleWidth, 0)Las cuatro propiedades juntas, se puede configurar un sistema de coordenadas completo, con coordenadas positivas y negativas.
- ScaleMode: devuelve o establece un valor que indica la unidad de medida de las coordenadas de un objeto al utilizar métodos gráficos o al situar controles. Los valores admitidos aparecen en la Tabla 10.
- ScrollBars: indica si en un TextBox se visualizán barras de desplazamiento. Los posibles valores son 0 (no tiene), 1 (sólo barra horizontal), 2 (sólo barra vertical) y 3 (se muestra una barra de desplazamiento horizontal y otra vertical). La propiedad MultiLine debe estar a True. Esta propiedad es de sólo lectura en tiempo de ejecución.
- Shape: devuelve o establece un valor que indica la apariencia en un control Shape. Ver Tabla 11.
- ShowlnTaskBar: permite indicar si el Formulario también será representado por un botón en la barra de tareas de Windows. Es de sólo lectura en tiempo de ejecución.
- SmallChange:devuelve o establece el cambio que se producirá en la propiedad Value de los controles HScrollBar y VScrollBar cuando el usuario haga clic en la flecha de desplazamiento. Por defecto es 1.
- Sorted: se aplica a controles ListBox y ComboBox. Si queremos que se mantenga la lista ordenada alfabéticamente establecer esta propiedad a True. Cuando es False (defecto) los elementos aparecen en el orden en el que se añadieron. Es de sólo lectura en tiempo de ejecución.
- Style: tiene distintos significados dependiendo del control al que se aplique. Para controles CommandButton, CheckBox y OptionButton pueden tomar un valor 0 para mostrar sólo texto dentro de un botón, o 1 para acompañarle de un gráfico.
Para el control ListBox un valor 0 (predeterminado), muestra la lista como en versiones anteriores a Visual Basic; un valor 1 muestra la lista como una casilla de verificación. Es posible seleccionar múltiples elementos.
Para un control ComboBox se utiliza para crear distintos tipos de controles ComboBox. Tienen tres valores: 0 (predeterminado), se crea un ComboBox desplegable, incluye una lista desplegable y un cuadro de texto. El usuario puede seleccionar en la lista o escribir en el cuadro de texto; 1 ComboBox simple, incluye un cuadro de texto y una lista no desplegable; 2 lista desplegable, este tipo sólo permite seleccionar en la lista desplegable.
La propiedad Style es tiempo de ejecución es de sólo lectura.
- TabIndex:indica el número de orden del control dentro de la lista de tabulación. Se utiliza junto con la propiedad TabStop.
- TabStop: establece si el usuario puede utilizar la tecla TAB para llevar el enfoque a un control. Por defecto es True, pero si se quiere que cuando se pulse TAB, el usuario no pueda situarse en ese objeto, poner esta propiedad a False.
- Tag: devuelve o establece una expresión que almacena cualquier dato adicional que necesita el programa. El valor predeterminado es una cadena de longitud cero.
- Text: tiene distintos significados dependiendo del control al que se aplique. Para los controles TextBox y ComboBox (estando este último con su propiedad Style a 0 o 1), muestra el texto escrito dentro del TextBox o contiene el texto del elemento seleccionado en la lista o el texto introducido en el área de edición por el usuario en el ComboBox.
Para un control ComboBox con su propiedad Style a 2 y un control ListBox contiene el texto del elemento de la lista que se encuentra actualmente seleccionado. Por tanto, su valor será equivalente al de la expresión List(ListIndex). Es de sólo lectura en tiempo de diseño y de sólo lectura en tiempo de ejecución. No está disponible en tiempo de diseño en un control ListBox.
- ToolTipText: devuelve o establece el texto mostrado cuando el ratón se sitúa sobre un control.
- Top: cambia la posición vertical de un control. En un Formulario siempre es en twips.
- Value: dependiendo del control tiene distintos significados; para un control CommandButton un valor True indica que se ha elegido el botón y automáticamente se invoca el evento Click y un valor False (predeterminado) indica que no se ha elegido. No está disponible en tiempo de diseño.
Para un control OptionButton indica el estado de este. Puede establecerse como True o False, para activar o desactivar. Sólo puede haber un OptionButton con la propiedad Value a True.
Para un control CheckBox indica el estado de la casilla. Puede establecerse en 0, 1 o 2. Un ajuste de 0 indica que el cuadro de control no está activado, 1 está activado y un ajuste de 2 indica que el cuadro aparece en gris.
Para controles HScrollBar y VScrollBar representan una magnitud dentro de un rango de valores establecidos por las propiedades Min y Max.
- Visible: permite ver u ocultar un control. Por defecto es True, cuando se especifica un valor False, el objeto se oculta y, por tanto, el usuario no podrá visualizarlo ni interactuar con él.
- Width: establece la anchura de un control. Para el objeto Form (Formulario) esta propiedad se mide siempre en twips (un twip es una unidad de medida de la pantalla equivalente a 1/20 de punto de impresora, es decir, en un centímetro entrarán 567 twip).
- WindowState: indica el estado de visualización de un Formulario en tiempo de ejecución. Los valores posibles son:
| Constante | Valor | Descripción |
| vbNormal | 0 | El Formulario se visualiza normalmente (valor por defecto). |
| vbMinimized | 1 | El Formulario se visualiza minimizado en forma de icono. |
| vbMaximized | 2 | El Formulario se visualizará ocupando todo el espacio de la pantalla. |
- WordWrap: cuando se encuentra a False, el tamaño de un control Label crece o decrece horizontalmente, manteniéndose constante su altura. Por el contrario, cuando se encuentra a True, el tamaño de un control Label crece o decrece verticalmente, manteniéndose constante su anchura (las palabras no se cortan al terminar el espacio disponible). La propiedad AutoSize debe establecerse en True.
- X1, Y1, X2, Y2: devuelven o establecen las coordenadas del punto inicial (X1, Y1) y del punto final (X2, Y2) de un control Line. Las coordenadas horizontales son X1 y X2, y las verticales son Y1 y Y2. Ejemplo: utilizar estas propiedades en tiempo de ejecución para mostrar la relación entre los elementos de una lista y los de otra, o conectar puntos de un mapa.