You are on page 1of 13

CONTROLES BSICOS MAS USADOS

Controles:
Un control no deja de ser una clase, con propiedades visuales y cuando lo mostramos por la ventana, es
un objeto. Este objeto posee, como puede poseer cualquier control propiedades, mtodos y eventos.
Las propiedades sern los distintos valores que contendrn nuestros objetos, hay algunos que son
comunes, como son las propieades visuales y el nombre de instanciacin de objeto, tambin existen
otros propios de cada controles o que coinciden entre controles.
Los mtodos tambin pueden ser comunes entre los controles y otros de ellos son propios. La mayora
de mtodos de un control no nos valdrn apenas para nada dentro de nuestra aplicacin.
Finalmente los eventos, son la capacidad ms til dentro de un control. Un evento permite a nuestro
objeto comunicarse con el resto de la aplicacin, los eventos estn pendientes en todo momento y se
comunican con la aplicacin en el momento que suceden, hay una pequea explicacin en el foro de
como crear nuestros propios eventos, cuando generas tu propio evento entiendes la funcionalidad de los
mismos y llegas a una comprensin mayor de los mismos.
Todos los controles, heredan de Control y control a su vez de Object, por lo que tenemos todas las
funcionalidades de ambas clases.

Propiedades,Mtodos y Eventos Generales


Antes de comenzar a ver los controles uno por uno, es necesario ver algunos valores comunes para no
tener que repetirlos posteriormente.
Dentro de las propiedades tenemos:
BackColor
Con esta propiedad podemos modificar el color del control a cualquiera que deseemos, hay bastantes
predifinidos pero podemos incluir los nuestros propios. Dentro de la paleta de colores se encuentra el
color Transparent, realmente este control toma el color del contenedor en el que se encuentra, obtener
la transparencia total dentro de Winforms es ms complicado de lo que parece, ya lo explicaremos en
otro post. Existen ciertos controles que no pueden tomar esta propiedad.
Name
Name es el nombre que va a obtener el objeto, tenemos pensar que este nombre es como cuando se
nombra a una variable o un objeto. Debemos darle un nombre comprensible y que nos permita
identificarlo rpidamente para evitar problemas en la posterior programacin. En ocasiones, en ciertas
ventanas podemos tener gran cantidad de controles en pantalla y una mala nomenclatura nos puede
generar ms de un dolor de cabeza.
Left / Rigth / Top / Bottom
Estas propiedades nos permiten conocer la localizacin del control en la ventana, tanto Bottom y Rigth
son propiedades de solo lectura. Por lo que no podemos modificarla. Esto nos permite modificar las dos
restantes, Left que es izquierda y Top, que es haca arriba. Si quisieramos desplazar tales controles
hacia el lado contrario de la ventana, solo tendramos que restar el valor. De esa manera la propiedad
Left decrementaria y eso implica que se aumentaria la otra.
Height y Width
Si las anteriores propiedades nos permitan controlar el desplazamiento del control, con estas dos
podemos modificar el alto del control (height) y el ancho(Width)
Dock

Otra propiedad visual que nos permite anclar nuestro control al contenedor en el que se esta
encontrando. Podemos anclarlo a uno de los lados de la ventana o usar la propiedad fill, que se
ensanchara hasta ocupar toda la posicin. Lo interesante de asignar un valor en la propiedad Dock es
que cuando modificamos el tamao del contenedor tambin se modificara del objeto que se incluya y
este asignado algn valor en esa propiedad.
Enabled
Un control puede tener varios tipos de estados, un grupo de estados es el Enabled(Permitido) al ser un
2

booleano, tenemos un dos estados. True permitido y cuando esta en False, el control esta deshabilitado.
El aspecto del control es diferente cuando asignamos el valor false a cualquier control a uno grisaceo.
Location
Si hace un momento comentbamos las cuatro propiedades left, rigth, top, bottom. Location nos
devolver un valor X y otro Y. Que corresponder a la posicin del control dentro de su contenedor.
Tenemos que tener en cuenta que la posicin 0,0 Corresponde a la esquina superior izquierda. Esta
propiedad podemos modificarla sin ningn tipo de problema.
TabIndex
Esta propiedad indicar el orden de obtener el foco dentro de una ventana cuando pulsamos la tecla
TAB, el valor O ser el primero, cuando dos controles tengan el mismo valor de TabIndex ser el
control ms proximo el que obtenga el foco.
Text
Esta propiedad que se encuentra en muchos de los controles que vamos a estudiar, simplemente nos
permite mostrar el texto en pantalla. Por ejemplo dentro de un botn o un textbox. Dentro del textbox,
la propiedad text tiene una gran repercusin. Ya que es el texto que puede escribir el usuario.
Visible
Finalmente la propiedad visible, es la propiedad que nos permitira modificar el estado de visibilidad
del control, al igual que la propiedad Enabled. Se trata de un booleano, siendo false invisible y true
visible.

Dentro de los mtodos comunes tenemos los siguientes:


BringToFront / SendToBack
Mediante estos dos mtodos, podemos controlar el eje Z que corresponder a la profunidad del
formulario. Pudiendo tener un control por debajo de otro. Mediante estos mtodos podremos mandarlo
al final del eje Z o al prinicipio para que sea mostrado.
El eje Z funciona de una manera similar como funciona dentro de un documento Word. Dentro de un
documento podemos enviar al fondo o al frente, dentro de la programacin en WinForms ocurre igual.
El orden dentro del eje Z inicial, ser igual a los controles que vayan siendo aadidos. Siendo el ltimo
control el que se encuentre por encima de los restantes.
Dispose
Aunque este mtodo, no debemos usarlo principalmente. Ya que .Net controla gran parte de los valores
en memoria. El mtodo Dispose nos permite liberar la memoria de ese objeto destruyndolo.
Evidentemente, siempre que hagamos tal llamada no podremos posteriormente continuar haciendo uso
del mismo.
Focus
Otra de las caracteristicas importantes dentro de la programacin en ventana, es el foco. Cuando un
control se encuentra seleccionado, se dice que posee el foco. Este solo puede pertenecer a un objeto a la
vez, por lo tanto no podemos tener dos objetos seleccionados. Un ejemplo prctico para saber
exactamente de que manera se comporta el foco, es seleccionando dentro de un control un cuadro de
texto (TextBox) Cuando cliquemos sobre l, principalmente recibir el foco y por lo tanto podremos
ver el cursor seleccionado. En ese momento el objeto tendr el foco, en otras ocasiones se puede
comprobar como un objeto recibe el foco cuando se encuentra iluminado o seleccionado.
Mediante Focus obtendremos el foco en el objeto donde se haya llamado el mtodo.
Hide / Show
No solo podemos ocultar nuestros controles, mediante la propiedad Visible, tambin lo podemos hacer
llamanod a tal mtodo. El segundo mtodo, Show, no solo nos permitir mostrar los controles que se
hayan ocultado con el primer mtodo. Si no que tambin mostrarlos por primera vez, cuando son
creados, los objetos se encuentran ocultos y solo se mostrarn si ejecutamos el mtodo Show.
La propiedad visible del control, tambin se ver modificada cuando se use estos mtodos, siendo el
valor False cuando usemos el mtodo Hide y Show devolver la propiedad a True.
Refresh / Update
Estos dos mtodos nos permiten redibujar el control en cuestin, en ocasiones para una mejor
visualizacin, si estamos modificando visualmente por cdigo el control, puede ser recomendable
forzar al control a que se repinte. Estos dos mtodos obligan al control a redibujarse.

Dentro de los eventos, los ms comunes son:


Antes de comentar los eventos comunes, debemos tener en cuenta que todos los eventos que
corresponden a los controles poseen dos objetos en su llamada: el sender y el handler.
Sender es un objeto de tipo objeto, este corresponde al objeto que ha realizado la llamada del evento,
por lo cual podemos hacer multiples funcionamientos para un evento dependiendo del control que
procedi. El segundo parametro es e. Mediante este objeto podemos tener el control de lo ocurrido
dentro del evento. Cosas tales como el funcionamiento del ratn, las teclas pulsadas u otros parametros.
BackColorChanged
Nos permite controlar el evento cuando se realiza un cambio de color.
Click
Este evento salta cuando el control es pulsado con el ratn.
ControlAdded / ControlRemoved
Estos eventos saltan, cuando se aade un control a ese control, preferiblemente cuando se trata de un
contenedor o cuando es removido.
Disposed
Cuando este evento haya saltado, implica que se lanzado el mtodo Dispose del control. Comprobar en
el evento cuando se haya liberado la memoria es en cierta parte importante, debido a que podemos
tener controles que hayan sido liberados y queramos desencadenar algn otro tipo de tarea despus de
esto.
GotFocus
El control recibe el mtodo y este evento salta para obtener el valor.
KeyDown / KeyPress / KeyUp
Estos tres eventos corresponden cuando una tecla es pulsada(KeyDown) y tambin (KeyPress) , el
tercer evento (KeyUp) ocurre cuando se ha levantado el dedo de la tecla pulsada. Mediante KeyDown y
KeyUp. Lo interesante de estos tres eventos es que podemos controlar en todo momento que teclas
fueron pulsadas, pudiendo reconocer el caracter que fue pulsado.
LostFocus
Si GotFocus era el encargado de ocurrir cuando se obtena el foco, este segundo evento es cuando el
control pierde el foco.
MouseClick / MouseDoubleClick / MouseDown / MouseUp / MouseEnter / MouseHover /
MouseMove / MouseWheel
5

Estos ocho eventos se refieren a los eventos que pueden ser llamados desde los distintos controles,
MouseClick y MouseDoubleClick permiten controlar cuando se ha producido un click o dos.
MouseDown y MouseUp, se refieren a cuando se pulsa y se suelta el botn del ratn.
Cuando entramos con el puntero dentro de un control, produciremos un evento de MouseEnter y
cuando salimos del mismo, el evento que saltar ser MouseHover. Cuando el evento es MouseMove
se refiere al movimiento del cursor dentro del control.
Finalmente el evento MouseWheel es cuando la rueda del ratn se mueve dentro del control.
Paint
El control cuando es pintado, produce este evento.
TextChanged
Cuando la propiedad de Text es modificada, se produce este evento.

Cmo: Crear teclas de acceso para controles de Windows Forms


Una tecla de acceso es un carcter subrayado en el texto de un men, un elemento de men o la
etiqueta de un control tal como un botn. Permite que el usuario "haga clic" en un botn al presionar la
tecla ALT en combinacin con la tecla de acceso predefinida. Por ejemplo, si un botn ejecuta un
procedimiento para imprimir un formulario y, por lo tanto, su propiedad Text se establece en
"Imprimir", y se agrega un smbolo de Y comercial ("&") antes de la letra "P", sta aparecer
subrayada en el texto del botn en tiempo de ejecucin. El usuario puede ejecutar el comando asociado
con el botn presionando ALT+P. No se puede tener una tecla de acceso en un control que no pueda
recibir el foco, por ejemplo un control TabPage.

Etiquetas

Los controles Label de formularios Windows Forms se utilizan para mostrar texto o imgenes que el
usuario no puede editar. Se utilizan para identificar objetos en un formulario; por ejemplo, para
proporcionar una descripcin de lo que har cierto control si se hace clic en l o para mostrar
informacin en respuesta a un evento o proceso en tiempo de ejecucin de la aplicacin. Por ejemplo,
puede utilizar etiquetas para agregar ttulos descriptivos a cuadros de texto, cuadros de lista, cuadros
combinados, etc. Tambin puede escribir cdigo que cambie el texto que muestra una etiqueta en
respuesta a eventos en tiempo de ejecucin. Por ejemplo, si la aplicacin tarda varios minutos en
procesar un cambio, puede mostrar en una etiqueta un mensaje que notifique el estado de
procesamiento del cambio.

Trabajar con el control de etiquetas


Dado que el control Label no puede recibir el foco, puede utilizarse tambin para crear teclas de acceso
para otros controles. Una tecla de acceso permite al usuario seleccionar el otro control si presiona
simultneamente la tecla ALT y la tecla de acceso. Para obtener ms informacin, vea Crear teclas de
acceso para controles de formularios Windows Forms y Cmo: Crear teclas de acceso con controles
Label de formularios Windows Forms.
El ttulo que se muestra en la etiqueta corresponde al valor de la propiedad Text. La propiedad
TextAlign permite establecer la alineacin del texto dentro de la etiqueta. Para obtener ms
informacin, vea Cmo: Establecer el texto mostrado por un control de formularios Windows Forms.
7

Cmo: Cambiar el tamao de un control Label de formularios Windows Forms para ajustar su
contenido
El control Label de formularios Windows Forms puede tener una sola lnea o varias lneas, y tener
tamao fijo o cambiar automticamente de tamao para adaptarse al ttulo. La propiedad AutoSize
permite cambiar el tamao de los controles para que se ajuste a ttulos mayores o menores, lo que
resulta especialmente til si el ttulo cambia en tiempo de ejecucin.

Para hacer que un control cambie dinmicamente de tamao a fin de ajustarse a su contenido

Establezca la propiedad AutoSize en true.

Si AutoSize se establece en false, se pasarn, si es posible, las palabras especificadas en la propiedad


Text a la lnea siguiente, pero no aumentar el tamao del control

Cmo: Crear teclas de acceso con controles Label de formularios Windows Forms
Los controles Label de formularios Windows Forms pueden utilizarse para definir teclas de acceso a
otros controles. Cuando se define una tecla de acceso en un control de etiqueta, el usuario puede
presionar simultneamente la tecla ALT y el carcter designado para mover el foco al control que lo
sigue en el orden de tabulacin. Puesto que las etiquetas no pueden recibir el foco, ste se mueve
automticamente al control siguiente en el orden de tabulacin. Utilice esta tcnica para asignar teclas
de acceso a cuadros de texto, cuadros combinados, cuadros de lista y cuadrculas de datos.

Cuadros de texto

Con el control TextBox, el usuario puede escribir texto en una aplicacin. Este control tiene
funcionalidad adicional que no se encuentra en el control de cuadro de texto de Windows estndar,
como el enmascaramiento de caracteres de contrasea y la edicin de mltiples lneas.

Habitualmente, se utiliza un control TextBox para mostrar, o aceptar como entrada, una sola lnea de
texto. Es posible utilizar las propiedades Multiline y ScrollBars para permitir que se muestren o
escriban varias lneas de texto. Establezca las propiedades AcceptsTab y AcceptsReturn en true con el
fin de permitir una mayor manipulacin de texto en un control TextBox multilnea.
Para limitar la cantidad de texto escrito en un control TextBox, establezca la propiedad MaxLength en
un nmero de caracteres especfico. Los controles TextBox se pueden utilizar tambin para aceptar
contraseas y otra informacin delicada. Es posible utilizar la propiedad PasswordChar para
enmascarar caracteres escritos en una versin de una sola lnea del control. Utilice la propiedad
CharacterCasing para permitir al usuario escribir slo maysculas, slo minsculas o una combinacin
de caracteres en maysculas y minsculas en el control TextBox.
Para restringir que se escriba texto en un control TextBox, se puede crear un controlador de eventos
para el evento KeyDown con el fin de validar cada carcter escrito en el control. Tambin se puede
restringir toda entrada de datos en un control TextBox; para ello, establezca la propiedad ReadOnly en
true.

Botones de comando

Se puede hacer clic en Button utilizando el mouse (ratn), la tecla ENTRAR o la BARRA
ESPACIADORA si el botn tiene foco.
Se establece la propiedad AcceptButton o CancelButton de un objeto Form para permitir a los usuarios
hacer clic en un botn presionando ENTRAR o ESCAPE incluso si el botn no tiene foco. Esto
proporciona al formulario el comportamiento de un cuadro de dilogo.
Al mostrar un formulario mediante el mtodo ShowDialog, se puede utilizar la propiedad DialogResult
de un botn para especificar el valor devuelto de ShowDialog.
Es posible cambiar la apariencia del botn. Por ejemplo, para darle un aspecto liso a una pgina Web,
hay que establecer la propiedad FlatStyle en FlatStyle.Flat. La propiedad FlatStyle tambin puede
establecerse en FlatStyle.Popup, y el botn presentar un aspecto liso hasta que el puntero del mouse
pase sobre el mismo, con lo cual a partir de ese momento el botn adoptar la apariencia de un botn
estndar de Windows.

Combos

Un ComboBox muestra un campo de edicin de cuadro de texto combinado con un ListBox y permite
al usuario seleccionar elementos de la lista o escribir texto nuevo. El comportamiento predeterminado
de ComboBox es mostrar un campo de edicin con una lista desplegable oculta. La propiedad
DropDownStyle determina el estilo que mostrar el cuadro combinado. Puede escribir un valor que
proporcione una lista desplegable sencilla, en que la lista se muestra siempre; un cuadro de lista
desplegable, en que la parte de texto no se puede editar y es necesario presionar una flecha para ver el
cuadro de lista desplegable; o el cuadro de lista desplegable predeterminado, en que la parte de texto se
puede editar y el usuario debe presionar la tecla de flecha para ver la lista. Para que se muestre una lista
que el usuario no puede editar, use un control ListBox.
Para agregar objetos a la lista en tiempo de ejecucin, asigne una matriz de referencias a objetos con el
mtodo AddRange. De este modo la lista muestra el valor de cadena predeterminado para cada objeto.
Puede agregar objetos individuales con el mtodo Add.
Adems de la funcionalidad de presentacin y seleccin, ComboBox tambin proporciona funciones
que permiten agregar de manera eficaz elementos al control ComboBox y buscar texto en los
elementos de la lista.
Con los mtodos BeginUpdate y EndUpdate puede agregar un gran nmero de elementos al
ComboBox sin que el control se tenga que volver a dibujar cada vez que se agrega un elemento a la
lista. Los mtodos FindString y FindStringExact permiten buscar un elemento de la lista que contenga
una cadena de bsqueda especfica.
Estas propiedades se pueden usar para administrar el elemento de la lista seleccionado actualmente, la
propiedad Text para especificar la cadena que se muestra en el campo de edicin, la propiedad
SelectedIndex para obtener o establecer el elemento actual y la propiedad SelectedItem para obtener o
establecer una referencia al objeto.
Cuadros de listas

10

El control ListBox permite mostrar una lista de elementos para que el usuario los seleccione haciendo
clic en ellos. Un control ListBox puede proporcionar una o varias selecciones mediante la propiedad
SelectionMode. ListBox tambin proporciona la propiedad MultiColumn para poder mostrar los
elementos en columnas en lugar de mostrarlos en una lista vertical. Con esto, el control puede mostrar
ms elementos visibles y el usuario ya no necesita desplazarse a un elemento.
Normalmente, Windows controla la tarea de dibujar los elementos que se van a mostrar en el control
ListBox. Utilice la propiedad DrawMode y controle los eventos MeasureItem y DrawItem de manera
que pueda reemplazar el dibujo automtico de Windows y dibujar los elementos. Utilice controles
ListBox dibujados por el propietario para mostrar elementos de alto variable, imgenes, un color o una
fuente diferente para el texto de cada elemento de la lista. La propiedad HorizontalExtent,
GetItemHeight y GetItemRectangle tambin le ayudan a dibujar sus propios elementos.
Adems de la funcionalidad de presentacin y seleccin, ListBox tambin proporciona funciones que
permiten agregar de manera eficaz elementos al control ListBox y buscar texto en los elementos de la
lista. Los mtodos BeginUpdate y EndUpdate permiten agregar un gran nmero de elementos al
ListBox sin que el control se tenga que volver a dibujar cada vez que se agrega un elemento a la lista.
Los mtodos FindString y FindStringExact permiten buscar un elemento de la lista que contenga una
cadena de bsqueda especfica.
Las propiedades Items, SelectedItems y SelectedIndices proporcionan acceso a las tres colecciones que
ListBox utiliza. En la tabla siguiente se presentan las tres colecciones que ListBox utiliza y se indica su
uso dentro del control.

DateTimePicker

Siempre que trabajemos con fechas, el uso del control datetimepicker nos permitir trabajar con ellas
con soltura. Mediante el datetimepicker no solo podemos cambiar las fechas, si no tambin la hora.
Para cambiar el diseo del datetimepicker y poder elegir como queremos que se muestre la fecha,
debemos modificar el valor de la propiedad Format.
Las propiedades MinDate y MaxDate nos permiten establecer en que fecha nos podremos mover con
nuestro control. Para saber la fecha que tenemos seleccionada usamos la propiedad Value.

11

Siempre que trabajemos con fechas y el usuario deba modificarlas, ser interesante incluir este tipo de
control.

Barras de desplazamiento (Scroll Bars)

Las barras de desplazamiento pueden se usadas en muchas formas. Las barras Verticales son usadas
comunmente para manipualr y poder ver texto. en ventanas que no lo presentan completamente. Sin
embargo ambos tipos de barras pueden ser usados para otros propsitos, por ejemplo, se pueden usar
para cambiar la velocidad del ratn, niveles de temperatura o velocidad.

ProgressBar

Ya hablamos en otra ocasion de las barras de progreso. Respecto a este control nos permitira tener un
control de un proceso. Sinceramente, para procesos largos, donde no nos interesa realizar un subhilo
para que se ejecute, es completamente necesario, siempre y cuando queramos que nuestro usuario se
sienta comodo.

12

Aunque parezca una tonteria, una barra de progreso bien situada, en procesos que normalmente pueden
tardar mas de treinta segundos, pueden permitir que esa espera parezca mucho menor de lo que
realmente resulta.
Su uso no es demasiado dificil, solo tenemos tener en cuenta dos propiedades y un metodo.
Las propiedades Minimum y Maximum, nos permitiran controlar los valores minimos y maximos
respectivamente que tendra nuestro control.

Calendarios

El control MonthCalendar permite al usuario seleccionar una fecha mediante una presentacin visual.
Es posible limitar las fechas y horas que se pueden seleccionar estableciendo las propiedades MinDate
y MaxDate.
Para cambiar la presentacin de la parte del control que corresponde al calendario, establezca las
propiedades ForeColor, Font, TitleBackColor, TitleForeColor, TrailingForeColor y BackColor.
El control MonthCalendar lo dibuja el sistema operativo o el propietario, por lo que nunca se produce
el evento Paint. Si necesita dar una apariencia personalizada al control MonthCalendar, debe
reemplazar el mtodo OnPrint, llamar a la implementacin base de OnPrinty, a continuacin, realizar
el dibujo personalizado.
Si se necesita aplicar un formato de fecha personalizado y limitar la seleccin a una sola fecha, se
puede utilizar un control DateTimePicker en lugar de un MonthCalendar. El uso del DateTimePicker
elimina en gran medida la necesidad de validar los valores de fecha y hora.

13

You might also like