Documentos de Académico
Documentos de Profesional
Documentos de Cultura
16
CONTROLES AVANZADOS DE VISUAL BASIC
Este capítulo pretende ampliar el conocimiento de ciertos controles introducidos con la versión
6 de VB, que, aunque ya son de uso habitual en cualquier aplicación, se salen un poco de los
conceptos estudiados en los controles de los capítulos 1 y 2. Vienen generalmente como un
paquete OCX que contiene varios de ellos.
Se estudian algunos de los paquetes distribuidos por Microsoft, sean o no fabricados por esta
compañía. Sería interminable comentar los paquetes realizados por casas especializadas,
controles de gran calidad, normalmente caros y para aplicaciones específicas dentro del
ámbito comercial en el que se mueve la empresa que lo realiza. Existen también gran cantidad
de controles realizados por particulares, con la mejor intención, que se pueden encontrar en
Internet distribuidos de forma gratuita. Son desaconsejables. No porque no funcionen, sino
simplemente porque no ofrecen ningún tipo de garantía, están normalmente sin información de
funcionamiento, y en caso de problemas no se puede recurrir a nadie para resolverlos. Una
aplicación profesional nunca deberá llevar un control shareware.
Paquete MSCOMCTL.OCX
Este paquete se denomina Microsoft Windows Common Controls 6.0 Contiene los siguientes
controles:
StatusBar Similar al anterior, pero para la barra de estado en la parte inferior del
formulario. Personalmente, creo que es más útil que el anterior. Puede
presentar automáticamente algunos parámetros del PC (Bloq. Mayúsculas,
Bloq. Números, Hora, Fecha) o el texto que se desee.
Fig. 16.3
StatusBar
Fig. 16.5
Los controles anteriores se parecen a otros similares ya explicados en los capítulos anteriores,
y la profundización en sus propiedades y métodos no va a ser problema para el alumno sin
más explicaciones. Reservemos el tiempo de estudio para lo interesante, que es lo que viene
ahora
ListView Es un control que permite presentar datos en una lista, utilizando para ello
gráficos y texto, con cuatro disposiciones distintas.
Control ImageList
Es un almacén de imágenes. Se representa en la caja de herramientas de esta
forma: Fig. 16.6
En esta se pueden introducir las imágenes que vamos a utilizar en los controles que tengan
asociado este ImageList. Es importante citar la propiedad Key de cada imagen, que sirve para
elegir la imagen. Una imagen de un ImageList se puede elegir mediante su índice (El índice va
de 1 a n, siendo n el número de imágenes), pero eso puede llevarnos a error, ya que dice muy
Propiedad MaskColor
Devuelve o establece el color que se usa para crear las máscaras de un control ImageList.
Esta propiedad se usa en el método Overlay. La propiedad MaskColor determina qué color de
una imagen será transparente en el método Overlay. Sólo es aplicable cuando la imagen del
ImageList es un BMP
Método Overlay
Dibuja una imagen utilizando dos imágenes de la colección ListImages de un control
ImageList, y pone esa imagen dentro de un control
Donde Indice1 e Indice2 son la propiedad Index o la propiedad Key de la imagen que se va a
superponer (Indice1) y de la imagen sobre la que se va a superponer la primera (Indice2).
Control es un control capaz de contener una imagen (Picture, Image, Formulario)
Antes de utilizar el método Overlay deberemos poner un valor a la propiedad MaskColor. (La
transparencia de un color solamente va a funcionar cuando vamos a superponer dos imágenes
en formato BMP)
Control TreeView.
Fig. 16.9 TreeView mostrando seis nodos, a la izquierda con iconos grandes y a la derecha
con iconos pequeños.
La vista de la Fig. 16.9 nos lleva a la primera idea acerca del TreeView: los Nodos. En
cualquier estructura jerárquica, un elemento tiene contenido en sí mismo, pero de él pueden
depender otros elementos. Esto nos lleva al concepto de Nodo. En el TreeView los datos se
presentan mediante nodos. El conjunto de todos los nodos es la colección Nodes. Esta
colección como cualquier colección en visual basic tiene sus propiedades y métodos.
Para empezar, la colección Nodes tiene el método Add. De esta forma ya podemos introducir
nodos en el TreeView. También tienen los método Remove, para eliminar uno de los nodos, y
Clear, para eliminar todos los nodos del TreeView.
El TreeView tiene varios estilos de presentación. Puede presentar los datos solamente con
textos, con texto y un icono, con un signo + ó – para indicar que ese nodo tiene elementos
bajo él, puede tener líneas o no. El estilo de presentación lo elegimos mediante la propiedad
Style del TreeView.
Propiedad Style.
Determina el estilo de presentación del TreeView. Es de lectura y escritura
Sintaxis NombredelTreeView.Style = Número (Establece el estilo)
El parámetro Número puede ser un número del 0 al 7. El estilo correspondienta a cada valor
es:
Con lo visto hasta ahora ya podemos ver cómo introducimos nodos en un TreeView. Para
poder introducir nodos con gráficos, es necesario poner en el mismo formulario, un control
ImageList con todas las imágenes que queremos poner en los nodos (Observe en la Fig. 16.8
que contiene todos los iconos que aparecen en la Fig. 16.9 Izda.) En ese ImageList hay que
poner a cada imagen un valor en su propiedad Key (En la Fig. 16.8, la imagen correspondiente
a la carpeta cerrada tiene en su propiedad Key la cadena “Cerrado”, la imagen con una carpeta
abierta, “Abierto”, la correspondiente al sobre tiene “Sobre” y la cara, “Cara”. Ya podemos
introducir los nodos mediante el método Add:
El Index de la colección Nodes comienza a numerar por el 1. Cada vez que se añade un nodo,
el Index de ese nodo será el Index del último + 1, independientemente de la posición que va a
ocupar ese nodo dentro del TreeView. No controlamos directamente esta propiedad. Por eso,
es mucho más práctico definir a los nodos mediante su propiedad Key.
Ya estamos en condiciones de rellenar un TreeView con varios nodos. El código para colocar
los nodos de la figura 16.9 es: (El nombre del TreeView es TreeV1)
Dim MiNodo As Node ‘Declaramos la variable tipo Node
TreeV1.Style = 7 ‘Hacemos que el estilo sea Líneas, +/-, Imagen y Texto
Set MiNodo = TreeV1.Nodes.Add(, , "R", "Raíz") ‘No tienen parámetro RelativoA
‘Los siguientes nodos,dependen del nodo Raiz, que tiene Key = “R”
Set MiNodo = TreeV1.Nodes.Add("R", tvwChild, "C1", "Secundario 1", "Cerrado")
Set MiNodo = TreeV1.Nodes.Add("R", tvwChild, "C2", "Secundario 2", "Cerrado")
Set MiNodo = TreeV1.Nodes.Add("R", tvwChild, "C3", "Secundario 3", "Sobre")
Set MiNodo = TreeV1.Nodes.Add("R", tvwChild, "C4", "Secundario 4", "Cerrado")
‘El siguiente nodo depende de Secundario 4, que tienen Key = “C4”, y además tiene un
‘icono distinto (Question) para cuando está seleccionado.
Set MiNodo = TreeV1.Nodes.Add("C4", 4, "C4b", "Terciario C41" , "Cara", "Question")
‘Ahora se introduce una propiedad a cada uno de los nodos todavía no explicada: la
‘imagen que va a tener cuando ese nodo esté expandido, es decir, cuando se ven los
‘nodos que dependen de él. Vea que se le pone un valor a esta propiedad incluso a los
‘nodos que no tienen otros nodos que dependan de ellos.
TreeV1.Nodes(1).ExpandedImage = "Abierto"
TreeV1.Nodes(2).ExpandedImage = "Abierto"
TreeV1.Nodes(3).ExpandedImage = "Abierto"
TreeV1.Nodes(4).ExpandedImage = "Abierto"
TreeV1.Nodes(5).ExpandedImage =
"Abierto"
TreeV1.Nodes(6).ExpandedImage =
"Abierto"
‘Y ahora otra propiedad no explicada. Con esto
hacemos que se vean todos los nodos.
MiNodo.EnsureVisible
El resultado de este código es la Fig. 16.9. Y la
Fig. 16.10 es lo que pasa cuando se selecciona
Fig. 16.10
Propiedades de la colección Nodes del TreeView
Propiedad ExpandedImage
Establece la imagen del nodo cuando está expandido, es decir, cuando se ven los nodos que
dependen de él. Es la propiedad Index o Key que tiene esa imagen en el control ImageList
asociado al TreeView.
Sintaxis NombredelTreeView.Nodes(Index).ExpandedImage = Valor
Donde Valor puede ser, o bien el Index o el Key de la imagen en el ImageList asociado al
TreeView.
Propiedad Expanded
Devuelve o establece un valor que determina si un objeto Node de un control TreeView se
encuentra expandido o contraído. Es una propiedad Booleana
Esta propiedad puede usarse para expandir por programa un objeto Node. Si un objeto Node
no tiene nodos secundarios, el valor de esta propiedad se pasa por alto.
Propiedad Children
Devuelve el número de objetos Node secundarios contenidos en un objeto Node. Esta
propiedad es solamente de lectura.
Propiedad FullPath
Devuelve la ruta completa de un objeto Node. El valor devuelto es una cadena de caracteres
que es el resultado de concatenar el texto de la propiedad Text del objeto Node referenciado
con los valores de las propiedades Text de todos sus predecesores. El valor de la propiedad
PathSeparator del TreeView determina el delimitador utilizado para separar el Text de uno y
otro nodo.
Sintaxis NombredelTreeView.Nodes(Index).FullPath
Esta propiedad puede usarse en el procedimiento NodeClick del TreeView, que ya pasa como
parámetro el nodo sobre el que hemos hecho click:
Estas propiedades devuelven una referencia a otro objeto Node. Con esa referencia que nos
devuelve, podremos conocer los valores de las propiedades del nodo cuya referencia nos
devuelve (Text, Key, FullPath, etc)
Sintaxis NombredelTreeView.Nodes(Index).Xxxx
Propiedad Key
Esta propiedad establece o devuelve una cadena de caracteres que identifica unívocamente a
un nodo. Esta propiedad se le asigna normalmente durante la creación de ese nodo mediante
el método Add, pero puede cambiarse posteriormente por programa.
La propiedad Key puede usarse para nombrar al nodo, al tratarse de una cadena única. No
puede haber dos nodos con el mismo Key. Si la cadena no es única, se produce un error.
Es muy prudente usar la propiedad Key para "autodocumentar" su proyecto de Visual Basic si
asigna nombres significativos a los objetos de una colección.
Propiedad Sorted
Esta propiedad la tiene tanto el control TreeView como la colección Nodes. Si esta propiedad
está a True en el TreeView, se ordenan alfabéticamente los elementos de nivel superior de la
colección Nodes.
Cada elemento de la colección Nodes puede tener su propiedad Sorted a True. En este caso,
los nodos que dependen de ese nodo estarán ordenados por orden alfabético.
Puede tener nodos con la propiedad Sorted = True, y otros con esa propiedad = False.
Propiedad Image
Establece la imagen que presenta un nodo. El valor de esta propiedad es, o bien el Index de la
imagen dentro del ImageList asociado al TreeView, o su propiedad Key.
Recuerde que estas propiedades son de la colección Nodes del TreeView. Veremos ahora las
propiedades del TreeView.
Propiedades del Control TreeView
Ya se han visto algunas más atrás. Se comentan solamente aquellas propiedades que no son
comunes al resto de los controles.
Propiedad Checkboxes
Establece si se muestran las casillas de verificación. (True/False)
Propiedad FullRowSelect
Establece si al seleccionar un nodo se marca solamente el texto del nodo (False) o si se marca
toda la horizontal del mismo (True).
Propiedad HideSelection
Establece si el texto seleccionado aparece resaltado cuando un control pierde el enfoque.
Propiedad HotTracking
Determina si está activado el resalte sensible al puntero del ratón. Una línea por debajo del
texto cuando pasamos el ratón por encima.
Propiedad ImageList
Establece el control ImageList que está asociado al TreeView. El ImageList debe estar en el
mismo formulario que el TreeView al que se asocia, pero un mismo ImageList puede estar
asociado a más de un TreeView u otros controles.
El TreeView necesita un ImageList para tomar de él las imágenes que va a colocar en los
nodos. Esta propiedad se puede cambiar en tiempo de ejecución, y es este precisamente, el
truco que nos permite cambiar en el TreeView el tamaño de los iconos.
En la Fig. 16.9 (Página 5) puede ver el mismo TreeView con dos tipos de iconos. El TreeView
no nos permite cambiar de tipo de iconos, (tal como lo hace el ListView) por lo tanto hay que
inventar algo que permita cambiarlos y así obtener la misma estética que en el ListView. Esto
se logra colocando dos ImageList en el formulario con las mismas imágenes e idénticos Key
para ellas. En uno de ellos se pone la resolución de las imágenes a 32 x 32 y en el otro a 16 x
16 (Vea Fig. 16.7 Página 3) Cuando quiera usar iconos pequeños, se asocia al TreeView el
ImageList con la resolución de 16 x 16, mediante la sintaxis:
NombredelTreeView = ImageList1 ó Set NombredelTreeView = ImageList1
Y a continuación se añaden los nodos mediante el método Add. Si quiere cambiar los iconos
durante la ejecución del programa (es muy típico colocar en una línea del menú el tipo de
iconos a presentar) observará que al cambiar el ImageList desaparecen los iconos. No hay otro
remedio más que volver a cargarlos, usando los métodos de la colección Nodes Clear (para
vaciarla) y Add. Este es el código que he usado en el ejemplo que ilustra este capítulo:
Propiedad LabelEdit
Devuelve o establece un valor que determina si el usuario puede modificar la propiedad Text
de los objetos Node de un control TreeView.
Propiedad LineStyle
Establece el estilo de las líneas que aparecen entre los objetos Node.
Acepta los valores 0 (tvwTreeLines) con lo que presentará solamente las líneas entre los nodos
de un mismo nivel y su nodo primario, y 1 (tvwRootLines) que presenta, además de las
anteriores, líneas entre los nodos raiz.
Propiedad Nodes
Devuelve una referencia a la colección de objetos Node de un control TreeView
Parent (Propiedad)
Devuelve una referencia al formulario que contiene un control u otro objeto o colección.
Propiedad PathSeparator
Establece el carácter delimitador utilizado en la ruta devuelta por la propiedad FullPath. El
carácter predeterminado es "\".
Scroll (Propiedad)
Devuelve o establece un valor que especifica si se muestran barras de desplazamiento.
Propiedad Sorted
Ya explicada para la colección Nodes.
Método GetVisibleCount
Devuelve el número de objetos Node que caben en el área interna de un control TreeView.
El número de objetos Node viene determinado por la cantidad de líneas que caben en una
ventana. El número total de líneas posibles lo determina el alto del control y la propiedad Size
del objeto Font. En este número se cuenta el elemento situado al final de la lista y que sólo es
visible parcialmente.
Puede usar la propiedad GetVisibleCount para asegurarse de que es visible un número
mínimo de líneas que permita al usuario hacerse una idea de la jerarquía. Si no es visible este
mínimo, puede restablecer el tamaño del control TreeView mediante la propiedad Height. Si
un determinado objeto Node debe ser visible, utilice el método EnsureVisible para desplazar
y expandir el control TreeView.
Método HitTest
Devuelve la referencia del objeto Node situado en las coordenadas x e y. Se utiliza sobre todo
en las operaciones de arrastrar y colocar para determinar si hay disponible en la ubicación
actual un elemento de destino de colocación. Si no hay ningún objeto en las coordenadas
especificadas, el método HitTest devuelve Nothing.
El método HitTest se utiliza casi siempre junto con la propiedad DropHighlight para resaltar
un objeto cuando se arrastra el mouse sobre él durante una operación de Drag & Drop. La
propiedad DropHighlight requiere una referencia a un objeto específico para resaltarlo. Para
determinar el objeto, se usa el método HitTest junto con un evento que devuelva las
coordenadas x e y, como DragOver, con el siguiente código:
Método StartLabelEdit
Inicia el proceso de modificación de la propiedad Text de un nodo, cuando la propiedad
LabelEdit está puesta a 1 (Manual).
Sintaxis NombredelTreeView.StartLabelEdit
Evento BeforeLabelEdit
Se produce cuando el usuario intenta modificar la etiqueta (Propiedad Text) de un Node.
Para comenzar a modificar una etiqueta, el usuario debe hacer clic primero en el objeto para
seleccionarlo y hacer clic una segunda vez para iniciar la operación. El evento BeforeLabelEdit
se produce después del segundo clic.
Para determinar a qué objeto pertenece la etiqueta que se va a modificar, utilice la propiedad
SelectedItem. En el ejemplo siguiente se comprueba el índice de un objeto Node antes de
permitir su edición. Si el índice es 1, se cancela la operación.
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
If TreeView1.SelectedItem.Index = 1 Then
Cancel = True ' Se cancela la operación
End If
End Sub
Evento AfterLabelEdit
Se produce cuando se termina de modificar la etiqueta (Propiedad Text) de un Node
Sintaxis
Private Sub NombredelTreeView_AfterLabelEdit(cancelar As Integer, nuevaCadena As String)
Para cancelar una operación de edición de etiqueta, establezca True o cualquier valor distinto
de cero en cancelar. Al cancelar la operación, se restaurará la etiqueta existente
anteriormente.
El argumento nuevaCadena puede usarse para comprobar una condición antes de cancelar
una operación. Por ejemplo, el código siguiente cancela la operación si nuevaCadena es un
número:
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
If IsNumeric(NewString) Then
MsgBox "No se permiten números"
Cancel = True
End If
End Sub
Evento Expand
Se produce al expandir un objeto Node de un control TreeView, es decir, cuando sus nodos
secundarios se hacen visibles.
Evento NodeClick
Se produce al hacer clic en un objeto Node.
Cuando el usuario hace clic en cualquier punto de un control TreeView, fuera de un objeto
nodo, se genera el evento Click estándar. El evento NodeClick se genera cuando el usuario
hace clic en un objeto Node determinado y devuelve una referencia al objeto Node que puede
usarse para validarlo antes de realizar alguna otra acción.
El evento NodeClick se produce antes del evento Click estándar.
Evento Validate
Ocurre cuando el foco cambia a otro control que tiene su propiedad CausesValidation
establecida a True. (Este evento es común a todos los controles ActiveX)
Fig. 16.11 Las 4 formas de presentación del ListView: Iconos grandes, pequeños, Lista y
Report
El ListView necesita DOS ImageList para almacenar los iconos. Uno para los iconos grandes y
otro para los iconos pequeños. Las imágenes en cada uno de ellos pueden (deben) ser las
mismas, con el mismo truco explicado para el TreeView: el de los iconos grandes con una
resolución de 32 x 32
y el de los iconos
pequeños con una
resolución de 16 x 16.
Esta propiedad puede
establecerse en
tiempo de diseño,
mediante el cuadro de
propiedades
personalizado, o en
tiempo de ejecución
mediante las
propiedades Icons y
SmallIcons
Fig. 16.12 Página de
propiedades del ListView mostrando los ImageList
ListView1.Icons = IMList1
ListView1.SmallIcons = IMList2
Las propiedades Icons y SmallIcons deben estar puestas antes de añadir elementos a la
colección ListItems del ListView. Si no es así, dará un error que dice que es necesario
inicializarlas.
Esta propiedad es la equivalente a la propiedad Nodes del TreeView. Pero en este caso, un
elemento de esta colección no solamente contiene un dato, sino que además puede tener
dentro de sí otra colección de datos. Por ejemplo, pensando en una agenda, un elemento de la
colección puede tener como propiedad Text el alias de una persona, y como subitems de ese
elemento, el nombre y apellidos de la persona a la que se refiere el alias, su teléfono y su
domicilio. Un elemento de la colección ListItems puede tener tantos subitems como queramos.
Los elementos de la colección ListItems se añaden mediante el método Add, con la siguiente
sintaxis
Donde
Donde
Devuelve un valor que determina si un elemento ListItem está seleccionado. Es una propiedad
solamente de lectura, por lo que no puede usarse para seleccionar un elemento.
Add
Clear
Quita todos los objetos que hay en una colección.
Sintaxis ListView1.ListItems.Clear
Remove
Quita un miembro específico de una colección.
Indice puede ser un número con la propiedad Index del elemento a quitar, o una cadena de
caracteres con su propiedad Key
EnsureVisible
Asegura que el objeto ListItem especificado sea visible.
Propiedad Arrange
Establece cómo se organizan los iconos en la vista Iconos o Iconos pequeños de un control
ListView.
Propiedad Checkboxes
Establece si se muestran las casillas de verificación.
Propiedad ColumnHeaderIcons
Es similar a la propiedad Icons o SmallIcons, pero ésta se refiere al ImageList que contiene los
iconos que se van a poner en las cabeceras de las columnas (cuando está en vista Report)
El número de columnas del ListView debe ser igual al número de ListSubItems de cada
elemento ListItems. De esta forma, cada ListSubItem se presentará en una columna. Para
añadir columnas al ListView se usa el método Add aplicado a la colección ColumnHeaders
Sintaxis
La colección ColumnHeaders tienen también sus propiedades y métodos. Vamos a citar las
más destacables:
Propiedad Alignment
Propiedad Position
Devuelve o establece la posición de una columna.
El control ImageCombo
Este control es un combo en el que se pueden introducir elementos. Estos elementos forman
la colección ComboItems. Cada elemento ComboItem puede tener un texto y una imagen.
Este combo presenta una enorme ventaja sobre el combo normal visto en capítulos anteriores:
cada elemento tiene una propiedad Index o Key que le distingue de los demás elementos, y se
puede utilizar una de esas dos propiedades para actuar sobre el programa, dependiendo del
ComboItem seleccionado. Tienen la misma apariencia que un combo normal.
Los elementos ComboItem se añaden con el método Add, que hemos visto en los controles
TreeView y ListView, con una sintaxis idéntica. No va a ser difícil para el alumno trabajar con
este control, una vez conocida la forma de trabajar con los dos controles citados
anteriormente.
- MonthView
- Animation
- DTPicker
- UpDown
- FlatScrollBar
Control MonthView
El control MonthView permite crear aplicaciones donde los usuarios pueden elegir una fecha
mediante una interfaz parecida a un calendario.
Para permitir a los usuarios del programa seleccionar un intervalo continuo de fechas, asigne a
la propiedad MultiSelect el valor True y especifique con MaxSelProperty el número de días
que podrán seleccionar. Las propiedades SelStart y SelEnd devuelven las flechas del
principio y el final de una selección.
Existen muchas formas de personalizar la apariencia de un control MonthView. Existen varios
atributos de colores, como MonthBackColor, TitleBackColor, TitleForeColor y
TrailingForeColor, que le permiten crear combinaciones de colores exclusivas para el control.
Establezca las propiedades MonthRows y MonthColumns para mostrar más de un mes a la
vez (hasta 12 meses) en un control MonthView. El número total de propiedades MonthRows
y MonthColumns debe ser inferior o igual a 12.
Es un control enlazado a datos, por lo que puede presentar o introducir una fecha de una base
de datos a través de este control, previamente enlazado a la base de datos mediante un
control Data.
Propiedad DayBold
Devuelve o establece un valor Booleano que determina si la fecha indicada se muestra en
negrita
Propiedad DayOfWeek
Devuelve o establece un valor que especifica el día de la semana actual.
La propiedades MaxDate y MinDate sirven para definir los límites superior e inferior del
calendario.
Propiedad MaxSelCount
Devuelve o establece el número máximo de días consecutivos que se pueden seleccionar de
una vez.
Obviamente esta propiedad solamente tiene sentido cuando la propiedad MultiSelect tiene el
valor True. Además, el valor asignado a la propiedad MaxSelCount debe ser superior a la
diferencia entre las propiedades SelStart y SelEnd. Por ejemplo, si selecciona el periodo del
15/9 al 18/9, MonthView.SelEnd - MonthView.SelStart = 3. Sin embargo, son cuatro los días
seleccionados realmente, por lo que MaxSelCount debe tener asignado el valor 4.
El valor predeterminado de la propiedad es una semana (7 días).
Propiedad Month
Devuelve o establece un valor que especifica el mes actual.
Valores admitidos.
La propiedad Month puede tomar cualquier valor o constante de las expresadas en la tabla
siguiente:
Los valores admitidos para número son:
Constante Valor Descripción
mvwJanuary 1 Enero
mvwFebruary 2 Febrero
Propiedad MonthBackColor
Devuelve o establece un valor que especifica el color de fondo mostrado para un mes.
Proiedad MultiSelect
Devuelve o establece un valor que determina si es posible realizar una selección múltiple de
fechas.
Propiedad Parent
Devuelve el formulario, objeto o colección que contiene un control u otro objeto o colección.
Sintaxis objeto.Parent
Utilice la propiedad Parent para tener acceso a las propiedades, los métodos o los controles
del primario de un objeto. Por ejemplo:
MiBotón.Parent.MousePointer = 4
Propiedad ScrollRate
Devuelve o establece un valor que especifica el número de meses que se desplazará cuando
el usuario haga clic en uno de los botones de desplazamiento. La propiedad ScrollRate
permite al usuario realizar desplazamientos de más de un mes cada vez.
Las propiedades SelStart y SelEnd definen el límite inferior y superior del intervalo de fechas
seleccionado. El intervalo de fechas seleccionado puede abarcar varios meses. Es posible
incluir fechas que no están visibles actualmente.
Para que la selección múltiple de fechas funcione correctamente, asigne a la propiedad
MaxSelCount un valor superior a la diferencia de los valores de las propiedades SelStart y
SelEnd.
Los valores SelStart y SelEnd sólo son válidos cuando la propiedad MultiSelect tiene el valor
True.
Propiedad ShowWeekNumbers
Devuelve o establece un valor que determina si los números de semana aparecen junto a la
semana.
Propiedad StartOfWeek
Devuelve o establece un valor que especifica el primer día de la semana.
Los valores admitidos para entero son iguales que para la propiedad DayOfWeek
Propiedad TrailingForeColor
Devuelve o establece un valor que especifica el color de primer plano de las fechas restantes
visibles actualmente.
Propiedad Value
Devuelve o establece la fecha que se muestra actualmente. El valor devuelto es de tipo Date
Propiedad Week
Devuelve o establece un valor que especifica el número de la semana actual.
VariableNumerica = NombredelControl.Week
NombredelControl.Week = VariableNumerica
Propiedad Year
Devuelve o establece un valor que especifica un año de calendario.
VariableNumerica = NombredelControl.Year
NombredelControl.Year = VariableNumerica
Es posible asignar a la propiedad Year cualquier entero comprendido entre 1601 y 9999.
Método HitTest
Devuelve la fecha ubicada en conjunto de coordenadas determinado. Se suele usar en
operaciones de arrastrar y colocar para determinar si existe un elemento en la ubicación de
destino de la operación.
Mediante el método HitTest puede obtener una fecha del control MonthView simplemente
haciendo clik encima de ella. El método HitTest devuelve Null si no existe ninguna fecha en
las coordenadas especificadas.
DateDblClick (Evento)
Ocurre cuando el usuario hace doble clic en una fecha del control.
Tiene la misma aplicación que la anterior, pero esta vez haciendo doble click
Se deja al alumno el estudio exahustivo de este control, que no se separa mucho del
MonthView visto anteriormente.
Control Animation
Este control nos permite introducir en nuestra aplicación un elemento muy elegante:
visualización de ficheros .avi Existen en Windows muchos fichero .avi aplicados para
distintas funciones: copiar ficheros, bajar ficheros de Internet, y otros empleados como
elemento tranquilizador en procesos lentos. Veamos un par de ejemplos:
Para probar este control basta con poner un controlen el formulario, un CommonDialog (CD1)
y dos botones, uno para arrancar y otro para parar la presentación del fichero avi. El tamaño
que se le de en el formulario debe ser suficientemente grande para que quepa la presentación
en su tamaño real. No acepta zoom.
En el procedimiento click del botón de arrancar basta con poner este código:
El control Animation tienen pocas propiedades distintas de los demás controles. Podemos citar
estas:
Propiedad Center
Establece si el fichero .avi se presenta en el centro del control (Center = True) o si se presenta
en las coordenadas 0,0 del mismo (Center = False)
Propiedad AutoPlay
Devuelve o establece un valor que determina si el control Animation empezará a reproducir
un archivo .avi cuando éste se cargue en el control.
Control UpDown
Este control sirve para introducir saltos de un paso en otros controles o en cualquier
parte del código de la aplicación.
Este control es tan sencillo que no se va a explicar. Solamente citar que sus dos
procedimientos más importantes son el DownClick y el UpClick
Control FlatScrollBar
Es un control de scroll. Tiene como todos los controles de este tipo, una propiedad Max para
darle el valor máximo, Min para ajustar el valor mínimo, SmallChange y LargeChange para
fijar las variaciones al hacer click en la fkecha o en el cuerpo respectivamente, y unna
propiedad Value para leer el valor actual.
Solamente tienen el procedimiento Scroll que se produce al variar la posición del cursor.
Dejamos aquí el estudio de controles avanzados. No es que no haya más, sino que el curso
debe tener un final. Para conocer a fondo los controles lo mejor es tomar un control de la
lista que sale del menú de VB Proyecto | Componentes, y ponerse con el. No voy a decir
que sea más fácil que estudiarlos con la ayuda de la Guía del Estudiante. Eso sí, le va a
resultar bastante más divertido. Le recomiendo que si estudia a fondo algún control
interesante para Vd. apunte todo lo que vaya aprendiendo de él. Por experiencia puedo
decirle que se olvida. Créese su propia Guía del Estudiante. A final de cuentas esta comenzó
así y ya va bastante adelantada.