Está en la página 1de 18

Aplicaciones con interfaz grfica

En esta leccin:
1. Programando en Windows

2. Eventos

3. Estructura de una aplicacin

4. Controles ms comunes

5. Aadir una etiqueta y editar sus propiedades

6. Aadir un botn y editar sus propiedades

7. Aadir una descripcin abreviada de un componente

8. Manejo de eventos

9. Asignar manejadores de eventos a un objeto

10. Cajas de texto, etiquetas y botones

11. Teclas de acceso

12. La palabra reservada partial

13. Eventos asociados con el teclado

14. Enfocar un objeto

15. Seleccionar el texto de una caja de texto

16. Interceptar la tecla pulsada

17. Validacin de un campo de texto

18. Eventos Validating y Validate

19. Control MaskedTextBox

20. Establecer una fuente

21. Establecer un color

1
Aplicaciones con interfaz grfica
Una de las grandes ventajas de trabajar con Windows es que todas las ventanas se comportan de la
misma forma y todas las aplicaciones utilizan los mismos mtodos bsicos (mens desplegables,
botones) para introducir rdenes.

Una ventana tpica de Windows tiene las siguientes partes:

1. Barra de mens
2. Icono de la aplicacin y men de control
3. Barra de ttulo
4. Botn para minimizar la ventana
5. Botn para maximizar la ventana
6. Botn para cerrar la ventana
7. Barra de desplazamiento vertical
8. Marco de la ventana
9. Barra de desplazamiento horizontal
10. rea de trabajo

En esta imagen podemos ver todos los elementos mencionados anteriormente.

Programando en Windows

Una aplicacin para Windows presentar una interfaz grfica la que tiene bsicamente dos tipos de
objetos:

2
Ventanas (tambin llamadas formularios).
Controles (botones, cajas de texto, mens, listas, etc.)

Una vez diseada la interfaz grfica, el siguiente paso es escribir el cdigo fuente relacionado con la
funcin que tiene que realizar cada objeto de la interfaz. Por ejemplo, programar un botn para que al
hacer clic sobre l muestre un formulario solicitando unos determinados datos.

Por esto, se dice entonces que la programacin es conducida por eventos y orientada a objetos.

Para programar una aplicacin Windows, hay que escribir cdigo separado para cada objeto en
general, quedando la aplicacin dividida en pequeos procedimientos o mtodos conducidos por
eventos. Ejemplo:

btSaludo.Click += new System.EventHandler(btSaludo_Click);

private void btSaludo_Click(object sender, EventArgs e)


{
etSaludo.Text = Hola Mundo!!!;
}

De lo anterior podemos decir que:

El mtodo btSaludo_Click ser puesto en ejecucin en respuesta al evento Click del objeto
identificado por btSaludo; es decir, que cuando el usuario haga clic en el objeto btSaludo se
ejecutar el mtodo btSaludo_Click.
Esto es justamente lo que est indicando el delegado EventHandler.
El mtodo btSaludo_Click manejar el evento Click de btSaludo.

Eventos
Son mecanismos mediante los cuales los objetos (ventanas o controles) pueden notificar de la
ocurrencia de sucesos.

Puede ser causado por:

o Una accin del usuario. Ej: pulsar una tecla.


o Por el sistema. Ej: Temporizador
o Indirectamente por el cdigo. Ej: cargar una ventana

En Windows, cada ventana y cada control pueden responder a un conjunto de eventos


predefinidos.

Cuando ocurre uno de estos eventos, Windows lo transforma en un mensaje que coloca en la
cola de mensajes de la aplicacin implicada.

Un mtodo Run, denominado bucle de mensajes, es el encargado de extraer los mensajes de


la cola y despacharlos para que sean procesados.

Cada mensaje almacenar la informacin suficiente para identificar al objeto y ejecutar el


mtodo que tiene para responder a ese evento.

3
Comienzo Mtodo 1

Mtodo 2
Recuperar Entregar
siguiente informacin
mensaje del mensaje Mtodo 3

Mtodo 4

Salir? No

Si

Fin

En la figura anterior se puede ver de forma grfica como acta el bucle de mensajes mientras la
aplicacin est en ejecucin.

Estructura de una aplicacin


using System;
using System.Windows.Forms;
using System.Drawing;

public class Form1 : Form


{
public Form1()
{
IniciarComponentes();
}

public void IniciarComponentes()


{
ClientSize = new Size(292, 191);
Name = "Form1";
Text = "Saludo";
}

protected override void Dispose(bool eliminar)


{
if (eliminar)
{
}

4
base.Dispose(eliminar);
}

public static void Main()


{
Application.Run(new Form1());
}
}

Cuando creamos una aplicacin Visual C# con Visual Studio, el cdigo generado aporta
explcitamente el mtodo Main en una clase Program localizada en el fichero Program.cs, pero se
puede personalizar si as lo desea.

Controles ms comunes

Etiquetas. Se implementan a partir de la clase Label

Botones. Se implementan a partir de la clase Button

Cajas de texto. Se implementan a partir de la clase TextBox las de una sola lnea de texto, las de
varias lneas y las de "palabra de paso".

Casillas de verificacin. Se implementan a partir de la clase CheckBox.

Botones de opcin. Se implementan a partir de la clase RadioButton.

Listas. Se implementan a partir de las clases ListBox y ComboBox.

Barras de desplazamiento. Se implementan a partir de la clase ScrollBar.

Estos controles se localizan en el espacio de nombres System.Windows.Forms y son objetos de


subclases de la clase Control que a su vez se deriva de la clase
System.ComponentModel.Component.

Aadir una etiqueta y editar sus propiedades

Primero hay que aadir a la clase del formulario una variable de tipo Label:

private Label etSaludo;

Luego, crear el objeto (por ejemplo, en el mtodo IniciarComponentes):

etSaludo = new Label();

Establecer las propiedades de la etiqueta:

etSaludo.Name = "etSaludo";
etSaludo.Text = "etiqueta";
etSaludo.Font = new Font("Microsoft Sans Serif", 14, FontStyle.Regular);
etSaludo.TextAlign = ContentAlignment.MiddleCenter;

5
etSaludo.Location = new Point(53, 48);
etSaludo.Size = new Size(187, 35);
etSaludo.TabIndex = 1;
Controls.Add(etSaludo);

Aadir un botn de pulsacin y editar sus propiedades

Hay que aadir a la clase del formulario una variable de tipo Button:

private Button btSaludo;

Luego, crear el objeto (por ejemplo, en el mtodo IniciarComponentes):

btSaludo = new Button();

Estabecer las propiedades del botn:

btSaludo.Name = "btSaludo";
btSaludo.Text = "Haga &clic aqui";
btSaludo.Location = new Point(53, 90);
btSaludo.Size = new Size(187, 23);
btSaludo.TabIndex = 0;
Controls.add(btSaludo);

Aadir una descripcin abreviada a un componente

Una descripcin abreviada se mostrar cuando el puntero del ratn se site encima del componente.

Primero hay que aadir a la clase del formulario una variable de tipo ToolTip:

private ToolTip ttToolTip1;

Luego, crear el objeto (por ejemplo, en el mtodo IniciarComponentes):

ttToolTip1 = new ToolTip();

Finalmente, aadir al botn la descripcin abreviada que desee:

ttToolTip1.setToolTip(btSaludo, "Boton de pulsacion");

El proceso de aadir los componentes resulta muy sencillo cuando utilizamos Visual Studio pues
simplemente tenemos que tomar los componentes de una paleta y dibujarlos sobre el formulario
utilizando el ratn. Esto hace que se aada automticamente todo el cdigo descrito anteriormente.

Manejo de eventos

Cuando una accin sobre un componente genera un evento, se espera que suceda algo, entendiendo
por evento, un mensaje que un objeto enva a algn otro objeto. Esto quiere decir que hay un
remitente del evento, por ejemplo, un botn, y hay un receptor del evento, por ejemplo, la ventana que
contiene ese botn.

6
Lgicamente ese algo hay que programarlo y para ello hay que saber cmo manejar ese evento. Los
eventos que se producen sobre un componente se manipulan a travs de los manejadores de esos
eventos. Un manejador de eventos es un objeto en el que un componente delega la tarea de
manipular un tipo particular de eventos.

evento
Componente Manejador de
ocurrido eventos

Mtodo
(respuesta al evento)

En la figura anterior puede ver que cuando un componente genera un evento, un manejador de
eventos vinculado con el componente se encarga de analizar qu evento ocurri para responder al
mismo ejecutando el mtodo adecuado.

El manejador de eventos, que recibe tambin el nombre de delegado, es un objeto de la clase


EventHandler del espacio de nombres System que guarda una referencia al mtodo que responder a
ese evento. Este mtodo recibe el nombre de controlador de eventos.

La tabla siguiente muestra los eventos ms comunes:

Evento Se produce cuando


AutoSizeChanged La propiedad AutoSize de un objeto cambia

BackColorChanged El color de fondo de un objeto cambia

Click Se hace clic sobre un objeto

ContextMenuStripChanged El valor de la propiedad ContextMenuStrip de un objeto cambia

ControlAdded Se aade un nuevo control a la coleccin ControlCollection

ControlRemoved Se elimina un control de la coleccin ControlCollection

CursorChanged El valor de la propiedad Cursor de un objeto cambia

DoubleClick Se hace doble clic sobre un objeto

EnabledChanged El valor de la propiedad Enabled de un objeto cambia

FontChanged El valor de la propiedad Font de un objeto cambia

7
ForeColorChanged El color del primer plano de un objeto cambia

Load Se inicia la carga de un formulario por primera vez

Paint El control se tiene que repintar

Resize El objeto es redimensionado

SizeChanged El valor de la propiedad Size cambia

TextChanged El valor de la propiedad Text de un objeto cambia

Del foco (se exponen en el orden en que se producen)


Enter Se entra en el control

GotFocus El control recibe el foco

Leave Se sale del control

Validating El control se est validando

Validated El control est validado

LostFocus El control pierde el foco

Del teclado (se exponen en el orden en que se producen)


KeyDown Se pulsa una tecla mientras el control tiene el foco

KeyPress Una tecla est pulsada mientras el control tiene el foco

KeyUp Una tecla es soltada mientras el control tiene el foco

Del ratn (se exponen en el orden en que se producen)


MouseEnter El puntero del ratn entra en un objeto

MouseMove El puntero del ratn se mueve sobre un objeto

MouseHover El puntero del ratn se sita encima del objeto

MouseDown Se presiona un botn del ratn sobre el objeto

MouseWheel La rueda del botn se mueve mientras el objeto tiene el foco

MouseUp El puntero del ratn est encima del control y se suelta un botn del
ratn

MouseLeave El puntero del ratn deja el control

De arrastrar y soltar
DragEnter Un objeto es arrastrado dentro de los lmites de otro control

DragOver Un objeto se mueve dentro de los lmites de otro control

8
DragDrop Se completa una operacin de arrastrar y soltar

DragLeave Un objeto es arrastrado fuera de los lmites de otro control

AutoSizeChanged La propiedad AutoSize de un objeto cambia

Asignar manejadores de eventos a un objeto

Un objeto, generalmente un componente, puede tener asociados tantos manejadores de eventos


como tipos de eventos tenga que manejar. Ejemplo:

btSaludo.Click += new System.EventHandler(btSaludo_Click);

private void btSaludo_Click(object sender, EventArgs e)


{
etSaludo.Text = Hola Mundo!!!;
}

El delegado EventHandler permite definir qu mtodo se ejecutar para un determinado evento


producido por un control.

El primer parmetro del mtodo btSaludo_Click hace referencia al objeto que produce el evento y el
segundo contiene informacin que depende del evento producido.

Para indicar que el mtodo btSaludo_Click es el manejador del evento Click se crea un delegado de
tipo EventHandler, pasndole la direccin del mtodo y aadiendo este delegado a la lista de mtodos
que seran llamados cuando el evento Click sea generado. Para aadir un delegado se utiliza el
operador += y para quitarlo de la lista, el operador -=.

Un delegado es un objeto de una clase que puede contener una referencia a un mtodo (el smil de
esto seran los punteros a funciones de C/C++).

Cajas de texto, etiquetas y botones

Los controles ms comunes en una aplicacin Windows son: las cajas de texto, las etiquetas y los
botones de pulsacin.

Las cajas de texto, controles TextBox, son importantes porque permiten realizar la entrada de datos
para una aplicacin y visualizar los resultados producidos por la misma.

Las etiquetas, controles Label, son cajas de texto no modificables por el usuario. Su finalidad es
informar al usuario de qu tiene que hacer y cul es la funcin de cada control.

Los botones, controles Button, permiten al usuario ejecutar una accin cuando sea preciso.

Las clases mencionadas, que proporcionan la funcionalidad para los controles descritos, se derivan
directa o indirectamente de la clase Control del espacio de nombres System.Windows.Forms, que
aporta la funcionalidad comn a todos estos controles.

Cuando una ventana tiene uno o ms botones, uno y slo uno de ellos puede ser el botn por
omisin, lo que implica que la tecla Enter realice la misma funcin.

9
Para hacer que un botn sea el botn predeterminado de un formulario, hay que asignar a la
propiedad AcceptButton del formulario el nombre de ese botn. El botn por omisin se distingue de
los dems porque aparece rodeado con un borde ms oscuro.

Tecla de acceso
En la siguiente figura, se puede observar en el ttulo del botn Aceptar, que la letra A aparece
subrayada (si no se ve pulse la tecla Alt). Esto significa que el usuario podr tambin ejecutar la
accin especificada por el botn, pulsando las teclas Alt + A. Esta asociacin tecla-control recibe el
calificativo de nemnico y se realiza escribiendo el smbolo ampersand (&) antes de la letra que desea
d acceso al botn.

La palabra reservada partial


Esta palabra indica que se est realizando una definicin parcial de la clase, lo cual permite definirla
en varios ficheros .cs. Por ejemplo, podramos tener una clase que representa un formulario llamada
Form1 definida en el fichero Form1.cs y se completa su cdigo en Form1.Designer.cs:

public partial class Form1 : Form


{
//...
}

Eventos asociados con el teclado


Cuando el usuario escribe en un control, por ejemplo, en una caja de texto, cada pulsacin produce
los eventos KeyDown, KeyPress y KeyUp. Para interceptar este tipo de eventos hay que aadir un
controlador de eventos. Ejemplo:

private void ctGradosC_KeyPress(object sender, KeyPressEventArgs e)


{
//...
}

El controlador anterior est asociado a una caja de texto cuyo nombre es ctGradosC y ejecutar el
cdigo cuando se produzca el evento KeyPress sobre dicha caja. Es posible asociar un mismo
controlador con varios controles siempre y cuando queramos que se ejecute el mismo cdigo para el
evento producido por los controles.

10
Este controlador recibe un primer parmetro, sender, de tipo object que hace referencia al objeto para
el cual ha sido invocado, y un segundo argumento, e, de tipo KeyPressEventArgs que proporciona las
siguientes propiedades:

Handled. Esta propiedad de tipo bool, permite obtener o establecer si se control (true) o no
(false) el evento KeyPress. Si el evento no est controlado, se enviar al sistema operativo
para que se realice el procesamiento predeterminado.
KeyChar. Esta propiedad de tipo char, permite obtener, y modificar si fuera necesario, el
carcter correspondiente a la tecla pulsada.

Enfocar un objeto
Cuando un control posee el punto de insercin, se dice que dicho control est enfocado o que tiene el
foco.

Un usuario de una aplicacin puede enfocar un determinado control haciendo clic sobre l, o bien
pulsando la tecla Tab una o ms veces hasta situar el foco sobre l.

Asimismo, un control tambin puede ser enfocado desde la propia aplicacin y lo podemos hacer de
dos maneras:

Invocando al mtodo Focus para el control que requiere el foco una vez abierto el formulario.
Este proceso puede realizarse como respuesta al evento Load que se genera cuando se carga
el formulario por primera vez:

private void Form1_Load(object sender, EventArgs e)


{
ctGradosC.Focus();
}

Colocndolo de primero en el formulario, lo que asigna un valor cero a su propiedad TabIndex


o bien, asignando directamente a su propiedad TabIndex un valor cero:

11
Seleccionar el texto de una caja de texto

En la mayora de las veces es necesario que cuando una caja de texto obtenga el foco, todo su
contenido quede seleccionado. Esto es fcil si sabemos que cuando un control obtiene el foco, genera
el mensaje foco obtenido (Enter o GotFocus) y cuando lo pierde, foco perdido (Leave o LostFocus).
Por ejemplo:

private void CajaTexto_Enter(object sender, EventArgs e)


{
TextBox ObjTextBox = (TextBox) sender;
ObjTextBox.SelectAll();
}

Otras propiedades/mtodos relacionadas con la seleccin de texto en un control de texto son las
siguientes:

SelectionStart. Propiedad que permite obtener o establecer el punto de inicio del texto
seleccionado en la caja de texto:

TextBox1.SelectionStart = 10;
pos = TextBox1.SelectionStart;

SelectionLength. Propiedad que permite obtener o establecer el nmero de caracteres


seleccionados en la caja de texto:

TextBox1.SelectionLength = 5;
n = TextBox1.SelectionLength;

SelectedText. Propiedad que permite obtener el texto seleccionado, o bien reemplazar el texto
seleccionado (puede ser nulo) por otro:

TextBox1.SelectionStart = TextBox1.Text.Length;
TextBox1.SelectedText = NuevoTexto;

Select (int pos_inicial, int pos_final). Selecciona el texto que se encuentra entre las posiciones
especificadas.

Interceptar la tecla pulsada


Una forma de interceptar la tecla Enter es asociando un manejador de eventos KeyPress con el
componente de texto que recibe tal evento, y verificar si se puls la tecla Enter.

private void CajaTexto_KeyPress(object sender, KeyPressEventArgs e)


{
if (e.KeyChar == Convert.ToChar(13))
{
// Se pulso la tecla Enter
e.Handled = true;
Conversion(sender);
}
}

12
La propiedad KeyChar se utiliza para comprobar si se presion la tecla Enter. Si se presion, la
propiedad Handled se establece en true, lo que indica que ser nuestra aplicacin la que controlar el
evento, no el sistema operativo.

Validacin de un campo de texto


Validar un campo de texto equivale a restringir su contenido al conjunto de caracteres vlidos para
dicho campo.

Si la validacin de los datos se hace despus de pulsar la tecla Enter en la caja de texto, el campo
podra contener un dato no vlido, pero podra ser validado antes de utilizarlo.

En cambio, si la validacin se hace verificando la validez de cada tecla pulsada (eventos KeyPress),
el campo de texto ya estar validado una vez finalizada la entrada.

Cuando una caja de texto tiene el foco y el usuario pulsa una tecla el control genera tres mensajes:
KeyDown, KeyPress y KeyUp.

KeyDown lo genera cuando se pulsa la tecla, KeyPress cuando se va a escribir el carcter y KeyUp
cuando se suelta la tecla.

A diferencia de los eventos KeyDown y KeyUp, el evento KeyPress se genera solamente cuando se
introduce un carcter ASCII. Esta definicin excluye teclas especiales, como teclas de funcin (F1 a
F12), teclas de movimiento del cursor ( ) o la tecla Supr (Del).

El juego de caracteres ASCII incluye todos los caracteres imprimibles, las combinaciones Ctrl+(A-Z) y
otros caracteres estndar como retroceso (ASCII 8 o BackSpace).

Para interceptar cualquier otra tecla o combinacin de teclas que no produzca un cdigo ASCII, se
utilizarn los eventos KeyDown y KeyUp.

Ejemplo: el contenido de la caja de texto ser vlido cuando sus caracteres pertenezcan al siguiente
conjunto: +-.1234567890. El signo + o slo puede aparecer al principio del dato y ste slo puede
contener una coma decimal:

private void CajaTexto_KeyPress(object sender, KeyPressEventArgs e)


{
if (e.KeyChar == Convert.ToChar(13))
{
// Se pulso la tecla Enter
e.Handled = true;
Conversion(sender);
}
else if (e.KeyChar == Convert.ToChar(8))
{
//Se pulso la tecla Retroceso
e.Handled = false;
}
else if (e.KeyChar == ,)
{
TextBox ObjTextBox = (TextBox) sender;
if (ObjTextBox.Text.IndexOf(,) != -1)
{
// Solo puede haber una coma
13
e.Handled = true;
}
}
else if (e.KeyChar == - || e.KeyChar == +)
{
TextBox ObjTextBox = (TextBox) sender;
// Admitir o + solo en la primera posicion
if (ObjTextBox.SelectionLength == ObjTextBox.TextLength)
{
// Todo el texto esta seleccionado: se sobrescribe con el signo
e.Handled = false;
}
else if (ObjTextBox.Length != 0)
{
// La primera posicion ya esta ocupada
e.Handled = true;
}
}
else if (e.KeyChar < 0 || e.KeyChar > 9)
{
// Desechar los caracteres que no son digitos
e.Handled = true;
}
}

Observe que la tecla pulsada se valida antes de que el procedimiento predeterminado por el sistema
aada el carcter a la caja de texto.

Eventos Validating y Validate


Otra forma de validar el contenido de un control es aadiendo manejadores para los eventos
Validating y Validate.

Estos eventos se producen en ese orden cuando el control pierde el foco (porque el usuario puls la
tecla Tab, hizo clic con el ratn en otro control, etc.), siempre y cuando su propiedad
CausesValidation valga true, que es el valor predeterminado.

En el controlador del evento Validating, debe probar una condicin determinada (por ejemplo, probar
si el dato es numrico); esto es, el control se est validando. Si la prueba da error, debe asignar a la
propiedad Cancel del parmetro CancelEventArgs del controlador el valor true. Esto cancela el evento
Validating y devuelve el foco al control.

El resultado es que el usuario no puede dejar el control hasta que los datos sean vlidos,
dependiendo esto de la propiedad AutoValidate del formulario que por defecto vale
EnablePreventFocusChange.

Si la prueba no da error, finaliz la validacin del control, se produce el evento Validate, en cuyo
controlador podremos utilizar el dato validado con toda seguridad.

A continuacin un ejemplo de Validating:

14
private void CajaTexto_Validating(object sender, CancelEventArgs e)
{
TextBox objTextBox = (TextBox)sender;
try
{
datoCajaTexto = Convert.ToDouble(objTextBox.Text);
}
catch (Exception)
{
e.Cancel = true;
objTextBox.SelectAll();
ProveedorDeError.SetError(objTextBox, "Tiene que ser numrico");
//MessageBox.Show("Tiene que ser numrico");
}
}

Un objeto System.Windows.Forms.ErrorProvider proporciona un mecanismo simple para indicar al


usuario final que se ha producido un error en un determinado control.

El primer argumento del mtodo SetError indica el control para el que se va a establecer la
descripcin del error y el segundo, la cadena de descripcin del error, que puede ser vaca.

Cuando se especifica una cadena de descripcin del error para el control, se muestra un icono junto a
ste. El icono parpadea de la manera que especifica la propiedad BlinkStyle, con la frecuencia que
especifica BlinkRate. Cuando el ratn pase por encima del icono, se mostrar la descripcin del error.

Si lo prefiere, puede notificar el error mediante un dilogo en lugar de utilizar un objeto ErrorProvider.

Si despus de que el usuario haya introducido el dato y pulse la tecla Tab o haga clic en otro control,
la prueba no da error, se produce el evento Validate, en cuyo controlador podremos realizar las
operaciones que sean necesarias. Ejemplo:

private void CajaTexto_Validated(object sender, EventArgs e)


{
Debug.WriteLine("Caja de texto validada");
ProveedorDeError.Clear();
Conversion(sender);
}

Mientras los datos del control que tiene el foco no sean vlidos, no se puede cerrar el formulario por
los mtodos utilizados normalmente.

Si requiere cerrar el formulario aunque contenga datos no vlidos, puede crear un controlador para el
evento Closing del formulario y definir la propiedad Cancel como false. Esto obliga al formulario a
cerrarse. En este caso la informacin de los controles que no se haya guardado se perder.

Los formularios modales no validan el contenido de los controles cuando se cierran.

MaskedTextBox
La clase MaskedTextBox, derivada de TextBoxBase, es un control TextBox mejorado que soporta una
sintaxis declarativa para aceptar o rechazar una entrada del usuario. Utilizando la propiedad Mask, se
puede especificar la siguiente entrada sin escribir una validacin personalizada:

15
El nmero de caracteres requeridos.
Caracteres opcionales.
El tipo de entrada esperada en una posicin determinada; por ejemplo, un dgito, un carcter
alfabtico, o un carcter alfanumrico.
Caracteres que componen la mscara, o caracteres que deberan aparecer directamente en el
control; por ejemplo, el guin ( - ) en una fecha, o el carcter que especifica la moneda
utilizada.

Los caracteres utilizados para componer la mscara que almacenaremos en la propiedad Mask son
los siguientes:

0 Dgito entre 0 y 9; entrada requerida.

9 Dgito o espacio; entrada opcional.

# Dgito o espacio; entrada opcional. Permite los signos + y -.

L Letra; entrada requerida. Restringe la entrada a: a-z y A-Z.

? Letra; entrada opcional. Restringe la entrada a: a-z y A-Z.

& Carcter; entrada requerida. Si la propiedad AsciiOnly se pone a true; este elemento
se comporta igual que L.
C Carcter; entrada opcional. Cualquier carcter que no sea de control. Si la propiedad
AsciiOnly se pone a true, este elemento se comporta igual que ?.
A Alfanumrico, entrada requerida. Si la propiedad AsciiOnly se pone a true, slo se
aceptarn las letras a-z y A-Z.
a Alfanumrico, entrada opcional. Si la propiedad AsciiOnly se pone a true, slo se
aceptarn las letras a-z y A-Z.
. Marcador de posicin decimal. El carcter que se mostrar (punto o coma decimal)
depender de la cultura actual.
, Separador de millares. El carcter que se mostrar (punto o coma de millares)
depender de la cultura actual.
: Separador de horas, minutos, segundos.

/ Separador da, mes, ao.

$ Smbolo monetario. El carcter que se mostrar depender de la cultura actual.

< Cambio a minsculas. Convierte todos los caracteres que le siguen a minsculas.

> Cambio a maysculas. Convierte todos los caracteres que le siguen a maysculas.

| Cancela el cambio a minsculas o a maysculas previo.

\ Escape. Libera a un carcter de Mask de su funcin, haciendo que se comporte como


un literal. Por ejemplo, \\ es el literal de \.
Todos los Literales. Todos los dems smbolos se muestran como literales; es decir, como ellos
caracteres mismos.

Ejemplos:

16
##-???-#### Fecha de la forma: 20-may-2012
##:## ?? Hora de la forma: 12:15 PM
00->L<LL-0000 Una fecha: da, mes abreviado y ao (20-May-2012)

La propiedad PromptChar especifica el carcter utilizado para rellenar las posiciones donde hay que
introducir un carcter (por omisin es _).

La propiedad Text almacena la entrada del usuario.

IncludeLiterals especifica si Text incluye los caracteres no reemplazables que componen la mscara,
como, por ejemplo, el guin ( - ) en una fecha.

IncludePrompt especifica si Text incluye el carcter PromptChar de las posiciones no rellenadas.

Si ResetOnPrompt vale true el carcter PromptChar no formar parte de la entrada.

Se puede poner la propiedad BeepOnError a true para avisar al usuario de que el carcter introducido
no es vlido. Tambin se puede utilizar el evento MaskInputRejected para realizar nuestro propio
tratamiento del error.

Establecer una fuente


Para utilizar una determinada fuente, hay que construir un objeto Font con las caractersticas
deseadas. Despus, para establecer esa fuente en un control de texto, utilizaremos la propiedad Font.
Ejemplo:

etPantalla.Font = new System.Drawing.Font(


Microsoft Sans Serif,
14.25F,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point,
( (byte)(0)) );

El constructor Font toma varios parmetros: nombre de la fuente, tamao, estilo, etc. A su vez, el
estilo puede ser: Regular, Bold o Italic, entre otros.

Establecer un color
Todo componente tiene un color de fondo y un color de primer plano. El color de fondo se utiliza para
rellenar los interiores de los componentes y el color de primer plano se utiliza para dibujar sobre el
color de fondo (por ejemplo, el color utilizado para pintar el texto sobre un componente).

Para establecer el color de fondo, utilizaremos la propiedad BackColor del control y para establecer el
color de primer plano, la propiedad ForeColor. Ambas propiedades toman un valor que se
corresponde con un objeto de la clase Color. Ejemplo:

etPantalla.BackColor = System.Drawing.Color.FromArgb(
((int)(((byte)(255)))),
((int)(((byte)(255)))),
((int)(((byte)(192)))));

17
Se puede observar que el mtodo FromArgb utilizado de la clase Color tiene tres parmetros que se
corresponden con tres valores enteros entre 0 y 255, que especifican el nivel de color rojo, verde y
azul, respectivamente. El objeto Color construido, devuelto por FromArgb, representa el color RGB
(Red, Green, Blue) especificado.

La siguiente tabla muestra los valores para algunos colores estndar:

Color Nivel de rojo Nivel de verde Nivel de azul


Negro 0 0 0
Azul 0 0 255
Verde 0 255 0
Aguamarina 0 255 255
Rojo 255 0 0
Fucsia 255 0 255
Amarillo 255 255 0
Blanco 255 255 255

18

También podría gustarte