Professional Documents
Culture Documents
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.
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.
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.
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.
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
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.
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