Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ControlesPrincipales PDF
ControlesPrincipales PDF
La clase base de estos dos controles, al igual que el de la clase Button es ButtonBase.
El control RadioButton se utiliza cuando se pretende elegir una nica opcin entre
varias. Un buen ejemplo lo constituye un formulario en que el usuario debe elegir, al
rellenar sus datos personales, si es hombre o mujer. Un RadioButton slo puede tener
dos estados: seleccionado o no seleccionado. Los controles RadioButton deben ser
mutuamente excluyentes entre s. Esto se consigue haciendo que pertenezcan a una
misma unidad lgica por medio de un control GroupBox, o bien, si nicamente es una
unidad, el formulario que los contiene los agrupa.
Propiedades
Appearance Define la apariencia del control, bien con apariencia estndar o bien
con apariencia de un botn en 3D.
AutoCheck Hace que el control cambie de estado siempre que se haga click sobre
l.
Checked Indica si el control est en estado seleccionado o no.
CheckState Indica el estado de seleccin del control. Slo para el CheckBox. Puede
ser Unchecked, Checked o Indeterminate. En este ltimo, el control
se dibuja en gris.
ThreeState (Slo CheckBox) Propiedad booleana. A False no se permite el
estado Indeterminate. A True, se permiten los tres estados
1/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Eventos
Los eventos ms utilizados por supuesto que tambin son eventos de estos controles
todos los que se derivan de la clase Control- son los siguientes:
La clase GroupBox
Lo mismo ocurre cuando se sitan una serie de controles en un control GroupBox. ste
es el padre de todos los controles que se siten en l y su comportamiento en algunas
propiedades es idntico. Por eso, cuando se mueve un control GroupBox, se desplazan
tambin con l todos los controles que contiene. Si se inhabilita un control GroupBox,
todos los controles hijo se inhabilitarn con l. Lo mismo sucede al cambiar el color
del fondo o el tipo de letra.
No se estudian aqu ninguna propiedad porque las hereda todas de la clase Control.
La clase ToolTip
Son pocas las propiedades y mtodos de esta aplicacin y no se suelen modificar. Las
ms importantes de esta clase son:
2/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Propiedades
Mtodos
Un control ListBox permite presentar una lista de elementos que el usuario puede
seleccionar pulsando con el ratn o con el teclado. Tiene dos modos de seleccin:
simple o mltiple. El modo seleccin se define en la propiedad SelectionMode. Puede
tambin tener una o varias columnas -propiedad MultiColumn -
Estas dos clases se estudian juntas porque su funcionalidad es muy parecida y, por lo
tanto, coinciden muchas de sus propiedades y eventos.
Control
ListControl
3/48
ListBox ComboBox
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.1
Suponga, por ejemplo, que se tiene un ListBox con los cinco elementos de la tabla
siguiente.
Indice Item
0 objeto2
1 objeto4
2 objeto5
4/48
Marco Besteiro y Miguel Rodrguez Controles Windows
1 4
2 5
Los mtodos comunes a todas las colecciones Add, Remove, Insert, etc- permiten
trabajar con este control de una manera muy sencilla. A continuacin se especifican las
propiedades ms importantes:
Propiedades
Items Es la coleccin que contiene todos los items o elementos de la lista.
Esta propiedad se utiliza para aadir, insertar o eliminar elementos
de la lista, por medio de los mtodos Add, Insert, Remove, etc... En
tiempo de diseo tiene un editor de la coleccin, para aadir,
insertar o eliminar los elementos que estarn presente es al
comienzo de la ejecucin de la aplicacin.
SelectedIndex Es un valor entero que indica el ndice del elemento seleccionado.
Si su valor es 1, no hay ningn elemento seleccionado.
SelectedItem Es el item o elemento seleccionado en la lista.
SelectedIndices Devuelve una coleccin con una lista de ndices de los elementos de
la lista seleccionados.
SelectedItems Devuelve una lista de los elementos o items seleccionados.
SelectionMode Indica el modo de seleccin de la lista. Tiene cuatro posibles
valores:
None: No se puede seleccionar ningn item.
One: Slo es posible seleccionar un elemento.
MultipleSimple: se pueden seleccionar varios items de manera
simultnea
MultiExtended: Igual que la anterior, pero el usuario puede utilizar
las teclas CTRL, SHIFT y las flechas para hacer sus selecciones.
MultiColumn Define el nmero de columnas de la lista.
ColumnWidth En una lista de varias columna, esta propiedad define el ancho de
ellas
Sorted Propiedad booleana que indica si la lista est ordenada por orden
alfabtico.
CheckedIndices Es una coleccin que contiene los elementos de la lista que estn
en estado Checked o Indeterminate.
CheckedItems Es la coleccin de los elementos de la lista que estn en estado
Checked o Indeterminate.
CheckedOnClick Propiedad booleana que indica si un item cambiar de estado
cuando el usuario pulse con el ratn en l.
ThreeDCheckBoxes Indica si la apariencia del control es 3D
Mtodos
5/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Hay varios mtodos muy interesantes a la hora de trabajar con estos controles.
Eventos
Adems del resto de los eventos que heredan de la clase Control, estas clases tienen
dos eventos especficos:
6/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.2
Se trata de una aplicacin que tiene dos controles ListBox, de nombres lbI y lbD, dos
cajas de texto, con propiedades Name textoI y textoD y siete botones, cuatro de ellos
para intercambiar elementos entre las listas, de propiedad Name btnD, btnDD, btnII y
btnI, y de propiedades Text >, >>, << y <, dos ms para aadir elementos a las listas, de
propiedad Name btnAnadirI y btnAnadirD y de propiedad Text Aadir y un botn
que servir para terminar la aplicacin de propiedad Name btnCerrar y propiedad
Text Cerrar.
En primer lugar hay que disear grficamente la aplicacin y asignar las propiedades
Name y Text correspondientes y a continuacin escribir el cdigo de los distintos
eventos.
7/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Utilizando el editor que proporciona este control pulse sobre los puntos suspensivos
correspondientes a la propiedad Items del ListBox- escriba algunos elementos, para
que estn presentes al comienzo de la aplicacin (Figura 16.2).
lbI.Items.Add(textoI.Text);
textoI.Clear();
textoI.Focus();
b) Botn btnD:
c) Botn btnDD:
Se recogen en un array de objetos todos los elementos de la lbI con la
propiedad All de Items.
Se recorre el array y se van aadiendo al lbD,con la propiedad Add de Items.
Se borran todos los elementos del lbI con el mtodo Clear de Items.
object[] arrayObjetos=lbI.Items.All;
foreach(object i in arrayObjetos)
{
lbD.Items.Add(i);
}
lbI.Items.Clear();
Application.Exit();
8/48
Marco Besteiro y Miguel Rodrguez Controles Windows
La clase ComboBox
Al igual que la clase ListBox, esta clase deriva de la clase ListControl. El control
correspondiente a esta clase combina tres controles: un TextBox, un Button y un
ListBox. En este control la seleccin no puede ser mltiple y es posible, dependiendo
del valor de algunas propiedades aadir elementos a travs del TextBox.
Generalmente se utiliza para seleccionar una entrada del usuario, pero ahorrando
espacio en el formulario. Al hacer click en la flecha del ComboBox se despliega la lista y
es posible hacer la seleccin. Tambin se puede trabajar con el teclado.
Propiedades
Muchas de las propiedades coinciden con las de un TextBox y las de un ListBox. Por
esto, la lista de propiedades de este control es muy extensa. Se sealan aqu las ms
comunes y utilizadas.
Eventos
9/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.3
10/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.4
11/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Son dos clases que permiten recorrer una lista de cadenas (DomainUpDown) o de
nmeros (NumericUpDown) para que el usuario realice una eleccin. Se recorre la lista
de los valores por medio de un par de pequeos botones que indican si el
desplazamientoes hacia arriba o hacia abajo.
Figura 16.5
Propiedades
Propiedades de UpDownBase:
12/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Propiedades DomainUpDown
Propiedades de NumericUpDown
La clase Panel
Un panel es un control que puede contener a otros controles. Se puede utilizar un panel
para agrupar colecciones de controles como RadioButton. Como otros controles
contenedores, si su propiedad Enabled es false, los controles que contiene tambin
tendrn esa propiedad a false.
Por defecto, se presenta sin bordes, aunque pueden definirse por medio de su propiedad
BorderStyle.
13/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Puede tener tantos paneles como se desee y en ellos se puede presentar texto o imgenes
(figura 16.6). Un ejemplo muy corriente lo constituye la barra de estado del procesador
de texto Word de Microsoft, donde se informa de la pgina, la seccin, el nmero total
de pginas, la lnea y columna dentro de la pgina actual, etc...
Figura 16.6
La clase StatusBar se usa para crear una barra de estado y la clase StatusBarPanel
para crear paneles de la barra de estado.
14/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Se puede escribir texto en una barra de estado, asignndoselo a la propiedad Text del
control. Pero tambin es posible asignar varios paneles para presentar una informacin
ms rica en detalles.
panel2.Text = DateTime.Now.ToString();
Propiedades
Eventos
DrawItem Ocurre cuando el panel que tiene el estilo OwnerDraw necesita ser
redibujado
Panel_Click Cuando se hace click sobre un panel de la barra de estado
Para dibujar manualmente un panel es necesario tener la propiedad Style del panel a
OwnerDraw y escribir el cdigo en el evento DrawItem.
15/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Application.Run(new Form1());
Application.Run(new FormularioPrincipal());
ListBox
Name: lista
SelectMode: One
Items: (Hacerlo con el editor)
Jan
Sevilla
Granada
Crdoba
Cdiz
Huelva
Almera
GroupBox
Name: groupBox1
Text: Sexo
Aada a groupBox1 los siguientes controles:
RadioButton:
Name: rbHombre
Text: Hombre
Checked: True
RadioButton:
Name: rbMujer
Text: Mujer
Checked: False
GroupBox
Name: groupBox2
Text: Idiomas
Aada a groupBox2 los siguientes controles:
CheckBox:
16/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Name: cbIngles
Text: Ingls
Checked: False
CheckBox:
Name: cbFrances
Text: Francs
Checked: False
CheckBox:
Name: cbAleman
Text: Alemn
Checked: False
CheckedListBox
Name: clbLenguaje
CheckedOnClick: True
Items:
(Con el editor aada los siguientes strings)
Java
C#
Pascal
Fortran
Cobol
C++
C
StatusBar
Name: sbEstado
Panels:
(Con el editor que se proporciona)
Aadir los siguientes (Ver figura)
Name: sbpCiudad
Name: sbpSexo
Name: sbpIdioma
Name: sbpLenguaje
En todos: Text: (Vaco)
ShowPanel: True
Autosize: False en los dos primeros y
True en los otros dos.
17/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.7
Figura 16.8
c) Se van a utilizar cuatro variables privadas de tipo string para cada uno de los
paneles denominadas strCiudad, strSexo, strIdioma y strLenguaje. En
el constructor del formulario se inicializan, como se indica a continuacin:
18/48
Marco Besteiro y Miguel Rodrguez Controles Windows
public FormularioPrincipal()
{
InitializeComponent();
strCiudad="Jan";
strSexo="Hombre";
strIdioma="Ninguno";
strLenguaje="Ninguno";
lista.SelectedIndex=0;
ActualizarBarra();
}
d) Para recoger el tem cada vez que se cambie la seleccin de la lista se debe tratar
el evento SelectedIndexChanged. Escriba el siguiente cdigo
19/48
Marco Besteiro y Miguel Rodrguez Controles Windows
if(cbIngles.Checked)
strIdioma+=cbIngles.Text+" ";
if(cbFrances.Checked)
strIdioma+=cbFrances.Text+ " ";
if(cbAleman.Checked)
strIdioma+=cbAleman.Text;
ActualizarBarra();
}
En este mtodo se recorre toda la coleccin de los items que tienen el estado a
Checked y se aade su texto al string correspondiente. Luego se actualiza la
barra.
La clase TabControl
20/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Este control tiene varios TabPage o pestaas que trabajan de manera similar a un
GroupBox. Para utilizar este control, se deben aadir el nmero de pestaas que se
deseen a una coleccin del control llamada TabPages. Visual Studio proporciona un
editor para aadir o eliminar las pestaas de la coleccin de manera grfica, rpida e
intuitiva. Se puede acceder a l a travs de la propiedad TabPages del control.
Posteriormente se van colocando los controles en cada pestaa.
Propiedades
21/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.10
22/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.11
Pulse sucesivamente el botn Agregar cada vez que desee aadir una pestaa. Si se
equivoca siempre puede pulsar el botn Eliminar y comenzar de nuevo.
Name: tpImprimir
Text: Imprimir
Name: tpOrtografia
Text: Ortografa
23/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.12
e.1) En la TabPage tpImprimir, aada los controles siguientes:
GroupBox
Name: groupBox1
Text: Impresora
o Label
Name: label1
Text: Nombre
Autosize: True
o Label
Name: lTipoDeImpresora
Text: Tipo
Autosize: True
o Label
Name: label3
Text: (Vaco)
Autosize: False
o ComboBox
Name: cbImpresoras
Text: HP LaserJet 1100
Items: HP LaserJet 1100
Canon Jet BCJ 4000
HP DeskJet 843C
GroupBox
24/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Name: groupBox2
Text: Intervalo de pginas
RadioButton
o Name: rbTodo
o Checked: True
o Text: Todo
RadioButton
o Name: rbPaginaActual
o Checked: False
o Text: Pgina actual
RadioButton
o Name: rbPaginas
o Checked: False
o Text: Pginas
RadioButton
o Name: rbSeleccion
o Checked: False
o Text: Seleccin
TextBox
o Name: txtSeleccion
o Text: (Vaco)
GroupBox
Name: groupBox3
Text: Copias
En groupBox1 site una etiqueta, tres CheckBox y un
NumericUpDown:
o Label
Name: label3
Text: Nmero de copias
Autosize: True
o NumericUpDown
Name: nudCopias
Increment 1
Value: 1
Minimum: 1
Maximum: 100
o CheckBox
Name: cbDosCaras
Texto: Imprimir por las dos caras
o CheckBox
Name: cbColor
Texto: Imprimir en color
o CheckBox
Name: cbBorrador
Texto: Calidad borrador
25/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Label
Name: label4
Text: Opciones de impresin elegidas
Label
Name: label5
Text: Opciones de ortografa seleccionadas
TextBox
Name: txtOpcionesImpresion
Text: (Vaco)
Multiline: True
TextBox
Name: txtOpcionesOrtografia
Text: (Vaco)
Multiline: True
Para actualizar las cajas de texto de la derecha. Se crean tres variables de tipo string y
se les da unos valores iniciales en el constructor del formulario:
public FormOpciones()
{
nombreImpresora="HP LaserJet 1100";
intervaloPaginas=" Todo";
opcionesCopias = " ";
nCopias =" 1";
strOrtografia="";
26/48
Marco Besteiro y Miguel Rodrguez Controles Windows
InitializeComponent();
}
Posteriormente, aada este mismo evento a los otros tres controles RadioButton, para
que todos estn tratados por el mismo mtodo manipulador.
27/48
Marco Besteiro y Miguel Rodrguez Controles Windows
{
if(txtSeleccion.Text.Length>0)
rbPaginas.Checked=true;
intervaloPaginas="Imprimir paginas: " + txtSeleccion.Text;
txtOpcionesImpresion.Text=ActualizarOpciones();
}
Se propone al lector que mejore el programa para que cuando se selcciona otro
ComboBox, se borre el contenido de la caja de texto txtSeleccion.
Ahora seleccione los tres controles CheckBox, y con ellos seleccionados vaya a la
Ventana de propiedades, y en la pestaa correspondiente a eventos, haga doble-click
sobre el evento CheckedChanged con lo que los eventos de los tres sern tratados por el
mismo manipulador cbDosCaras_CheckedChanged. Esta es otra manera de hacer lo que
antes se ha realizado control a control con los RadioButton.
Ahora aada el nmero de copias, del valor obtenido del control NumericUpDown. Para
ello, en el evento nudCopias_ValueChanged se escribe el siguiente cdigo:
Ahora ya slo queda tratar el control situado en la otra pestaa. Se tartar el evento
SelectedIndexChanged que ocurre siempre que se cambia algunos de los elementos
seleccionados. Para ello, se borra la variable strOrtografia, y se recorre la coleccin
de todos los elementos seleccionados. Se obtiene el tem correspondiente y se almacena
en la variable. Por ltimo, se asigna a la caja de texto el contenido de la variable.
28/48
Marco Besteiro y Miguel Rodrguez Controles Windows
La clase TrackBar
El control TrackBar -tambin llamado "slider"- se utiliza para navegar a travs de una
gran cantidad de informacin y/o para ajustar visualmente un determinado valor. Consta
de dos partes: una es el propio slider o marcador y las propias marcas. El slider puede
ser ajustado a un determinado valor y su posicin corresponde a ese valor que se asigna
a la propiedad Value. El marcador se mueve en incrementos que se pueden especificar.
Propiedades
AutoSize Define si el control se ajusta en tamao
automticamente.
LargeChange Valor que se aade o resta a la propiedad
Value cuando se mueve el slider por un
click de ratn o con las teclas AV PAG o
RE PAG.
Maximum Lmite superior de la propiedad Value.
Minimum Lmite inferior de la propiedad Value.
Orientation Orientacin del TrackBar
SmallChange Valor que se aade o resta a la propiedad
Value cuando se mueve el slider desde el
teclado con las teclas izquierda o derecha..
TickFrequency Es el incremento de valor entre las
pequeas marcas dibujadas en el control.
TickStyle Indica el modo de visualizacin del control.
Value Es el valor numrico que representa la
posicin actual del slider.
Eventos
Scroll Ocurre cuando el slider se mueve por
accion del ratn o por el teclado.
ValueChanged Ocurre cuando la propiedad Value cambia.
29/48
Marco Besteiro y Miguel Rodrguez Controles Windows
En la siguiente aplicacin las cajas de texto actualizan los valores de los TrackBar en
cada momento.
g) Site dos controles TrackBar, en el formulario y haga que sean ms o menos del
mismo tamao.
i) Aada cajas de texto, del mismo tamao, con las siguientes propiedades:
Name: txtValorBarraHorizontal y txtValorBarraVertical
respectivamente.
Text: 0
j) Aada dos etiquetas con las siguientes propiedades:
AutoSize: True
Text: Valor Barra Horizontal y Valor Barra Vertical,
respectivamente
30/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.13
Figura 16.14
y en otro control,
txtValorBarraVertical.Text = tv.Value.ToString();
De esta manera se asigna a la propiedad Text de las cajas de texto los valores de los
controles trackBar cada vez que stos cambien. Observe el lector que se utiliza el
31/48
Marco Besteiro y Miguel Rodrguez Controles Windows
mtodo ToString() que tiene cualquier objeto por heredarlo de la clase Object para
convertir la cantidad que se obtiene de los trackBar a string.
Se puede observar que esta aplicacin queda un poco incompleta porque lo lgico sera
que si el usuario cambia el valor de las cajas de texto, tambin cambiaran los valores en
los TrackBar. Adems sera conveniente controlar la entrada de la caja de texto para
que sea numrica. No se ha hecho aqu para no complicar demasiado el cdigo. Sin
embargo, se realiza un ejemplo muy parecido al explicar la clase ScrollBar.
La clase ScrollBar
Control
ScrollBar
HScrollBar VScrollBar
Figura 16.15
Propiedades
Eventos
Scroll Ocurre cuando se mueve la barra de desplazamiento. Es el evento
por defecto.
ValueChanged Ocurre cuando cambia el valor de la propiedad Value.
32/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Figura 16.16
-Formulario:
Name: FormularioColor
Text: Formulario de Color
FormBorderStyle: FixedDialog
por la lnea:
33/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Application.Run(new FormularioColor());
Aada un panel, tres etiquetas, tres cajas de texto y tres barras de desplazamiento con la
situacin de la figura anterior y con las propiedades siguientes:
-panel:
Name: panel
BackColor: Black
-Etiquetas:
Name: los que vienen por defecto, o sea, label1, label2 y label3.
Autosize: true
-Cajas de texto:
Name: txtRojo, txtVerde y txtAzul respectivamente.
Text: 0 (en las tres)
En el cdigo anterior, en primer lugar se obtienen los valores de cada una de las barras
de desplazamiento y se asignan a tres variables enteras. Posteriormente, se asignan estos
valores a las cajas de texto, para que haya una correspondencia entre los valores de las
barras y las cantidades de las cajas de texto.
A continuacin, en la lnea:
Color miColor=Color.FromArgb(nRojo,nVerde,nAzul);
34/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Hay que considerar que este cdigo sirve para los tres controles. Para esto, debe
asociarse este mismo evento de nombre scb_ValueChanged a los controles scbVerde y
scbAzul. Tambin se deben definir los eventos ValueChanged de las otras dos cajas de
desplazamiento. Para ello, se debe hacer click en la ventana de propiedades del control
scbVerde, en el evento ValueChanged; pulse en la parte de la derecha; sobre la flecha
situada al final de la lnea del evento aparece el nombre scb_ValueChanged. Pulse
sobre l y de modo automtico se asocia este mismo evento al control scbVerde.
Realice la misma operacin con el control scbAzul.
Ahora hay que considerar el paso inverso. Se trata de que cuando se cambien las
cantidades de las cajas de texto, se modifiquen automticamente y se siten en los
valores correspondientes las barras de desplazamiento y se asocie el color
correspondiente a estas cantidades al panel.
Adems, se considerar que no se cambie el color hasta que no se pulse ENTER. Por
eso, se trata el evento KeyPress.
Como las tres cajas de texto tienen el mismo cdigo, se compartirn el mismo nombre
para las tres como se ha hecho anteriormente. Se sigue el mismo camino anterior:
doble click sobre el evento KeyPress de uno de las tres cajas de texto por ejemplo la
primera y de modo automtico se asocia el nombre txtRojo_KeyPress al control, ya
que ste es el control por defecto de este control. Vuelva a la ventana de propiedades, y
cambie el nombre por uno un poco ms general, como por ejemplo, txt_KeyPress o
cualquier otro.
35/48
Marco Besteiro y Miguel Rodrguez Controles Windows
int nVerde=int.Parse(txtVerde.Text);
int nAzul=int.Parse(txtAzul.Text);
scbRojo.Value=nRojo;
scbVerde.Value=nVerde;
scbAzul.Value=nAzul;
Color miColor=Color.FromArgb(nRojo,nVerde,nAzul);
panel.BackColor=miColor;
}
}
else
MessageBox.Show("Introduce un nmero entre 0 y 255");
}
Observaciones:
a) En la lnea
int.Parse(txtRojo.Text);
se convierte la cantidad correspondiente a la caja de texto que es un string- a
un entero.
b) Se chequea si el nmero introducido est entre 0 y 255
c) En la lnea if(e.KeyChar=='\r') se chequea si la tecla pulsada es un ENTER,
que corresponde al carcter \r.
d) Se actualizan los valores de las barras con las cantidades correspondientes de las
cajas de texto
La clase PictureBox
Un PictureBox se utiliza para visualizar grficos: bitmaps, iconos, ficheros JPEG, GIF
u otros tipos de archivos.
Propiedades
BorderStyle Define el borde del control. Puede ser None, FixedSimple y
Fixed3D.
Image La imagen que se visualiza en el control.
SizeMode Modo de posicionamiento y visualizacin de la imagen. A
continuacin se muestran los valores que puede tomar.
36/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Esta aplicacin lee una imagen al hacer doble click sobre el formulario y cuando se
cambia el tamao del formulario se refresca la imagen. Es posible que no se entiendan
bien algunas de las lneas de cdigo, en concreto las que se refieren a la carga de la
imagen. Se explicarn en detalle ms adelante.
Figura 16.17
Al hacer doble click sobre el control PictureBox se carga una imagen. Para ello,
escriba el siguiente cdigo en el evento DoubleClick del PictureBox
37/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Se desea tambin que cuando cambie el tamao del formulario, se refresque la imagen.
Para ello, escriba el cdigo siguiente en el evento Resize de Form1.
Adems, cuando la imagen sea ms pequea que el formulario, se presentan las barras
de desplazamiento y se trata el evento Scroll de las barras. Ambas tienen el mismo
evento.
38/48
Marco Besteiro y Miguel Rodrguez Controles Windows
else
sbHor.Visible = true;
// Si la imagen es ms alta, presenta el VScrollBar
if (cajaImagen.Height > cajaImagen.Image.Height)
sbVer.Visible = false;
else
sbVer.Visible = true;
}
La clase Timer
Propiedades
Mtodos
Eventos
Name: reloj
Interval: 100 (intervalo de dcimas de segundo)
39/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Enabled: true
Name: segundos
Text: 0
Figura 16.18
40/48
Marco Besteiro y Miguel Rodrguez Controles Windows
mm=0;
hh++;
}
}
}
//Escribir la hora en el formato: hh:mm:ss:dd
hora.Text = hh.ToString() + ":" + mm.ToString() + ":"
+ ss.ToString() + ":" + dd.ToString();
}
Compile y ejecute la aplicacin.
41/48
Marco Besteiro y Miguel Rodrguez Controles Windows
La clase DateTime
Esta clase no es un control pero es indispensable para trabajar con los dos controles que
se van a estudiar a continuacin. Un objeto de la clase DateTime encapsula informacin
del da y la hora.
Propiedades
Date Es de tipo DateTime. Obtiene la fecha actual.
Day Es de tipo entero. Obtiene el da del mes.
DayOfWeek Da de la semana.
DayOfYear Da del ao.
Hour Hora.
Millisecond Milisegundos
Minute Minutos.
Month Mes.
Second Segundos.
Ticks Nmero de veces que han pasado intervalos de 100
nanosegundos.
TimeOfDay Hora dentro del da.
Year Ao.
Propiedades estticas:
Mtodos
ToLongDateString(),ToLongTimeString(), Convierten la fecha o la hora a
ToShortDateString(),ToShortDateString(), distintos formatos de cadena.
ToShortTimeString(), ToString()
Mtodos estticos:
42/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Esta aplicacin presenta en pantalla los distintos formatos de esta clase. Para ello, se
asignan a la propiedad Text de cada una de las diez cajas de texto un formato de la
fecha u hora distintos (figura 16.19). Previamente, se crea un objeto de la clase
DateTime:
public Form1()
{
InitializeComponent();
Figura 16.19
43/48
Marco Besteiro y Miguel Rodrguez Controles Windows
La clase DateTimePicker
Se utiliza para seleccionar una determinada fecha, de manera grfica. Esta clase deriva
directamente de la clase Control. Es un control mezcla de un control ComboBox que
contiene una determinada fecha y un calendario que se estudiar posteriormente-
(figura 16.20).
Figura 16.20
C# permite trabajar de una manera muy flexible con los formatos de fecha y hora. La
propiedad CustomFormat permite definir el formato de la presentacin en el control. Se
debe encerrar entre comillas simples las letras reservadas de esta propiedad que son d
(da) m(mes) y(ao) h(horas) m(minutos) s(segundos) as como : y /. Para que tenga
validez el formato, el valor de la propiedad Format debe ser Custom. Por ejemplo, para
presentar en pantalla dia 06/01/2001 a las 11:34 basta con poner la propiedad
CustomFormat el string: 'd'ia dd'/'mm'/'yyyy a la's' hh':'mm.
Propiedades
CalendarFont Propiedades para el diseo grfico del control.
CalendarForeColor Con ellas se puede definir el tipo de letra y su
CalendarMonthBackground
CalendarTitleBackColor color, as como el color de fondo del control y
CalendarTitleForeColor del calendario que se despliega.
CalendarTrailingForeColor
Checked Cuando la propiedad ShowCheckBox es true
indica el estado del control CheckBox adjunto a
la fecha
CustomFormat Define el formato personalizado de la fecha y/o
la hora.
44/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Eventos
CloseUp Ocurre cuando se cierra el calendario asociado al control.
DropDown Ocurre cuando se despliega el calendario asociado al control.
ValueChanged Ocurre cuando cambia la propiedad Value, es decir, cuando se
selecciona un fecha diferente a la actual. Es el evento por defecto
del control.
45/48
Marco Besteiro y Miguel Rodrguez Controles Windows
La clase MonthCalendar
Es posible modificar el aspecto grfico del calendario cambiando los valores de las
propiedades ForeColor, TitleBackColor, TitleForeColor, TrailingForeColor y
BackColor.
Propiedades
DateTime[] BoldedDates Es el array de objetos de tipo DateTime
que determina los das sealados en
negrita.
CalendarDimensions El nmero de filas y de columnas que
tiene el control.
Day FirstDayOfWeek Define el primer da de la semana. Por
defecto es Day.Default
DateTime MaxDate El da ms lejano del futuro que es posible
seleccionar.
int MaxSelectionCount El mximo nmero de das que es posible
seleccionar. Por defecto es 7.
DateTime MinDate El da ms lejano del pasado que es
posible seleccionar.
DateTime[]MonthlyBoldedDates Cambio de meses al hacer un scroll en el
int ScrollChange control.
DateTime SelectionEnd Es el da final del rango de das
seleccionado.
SelectionRange SelectionRange Devuelve un objeto de la clase
SelectionRange. Esta clase representa el
rango de das seleccionado. Tiene dos
propiedades: Start y End, que son dos
objetos de la clase DateTime, que indican
la fecha de comienzo y la de final del
rango. Si slo se selecciona un da Start
y End son iguales.
DateTime SelectionStart Define la fecha de comienzo en la
seleccin de un rango de das.
boolean ShowToday Indica si la fecha representada en la
propiedad TodayDate se presenta en la
parte inferior del control.
boolean ShowTodayCircle Indica si se rodea con un pequeo crculo
la fecha actual.
boolean ShowWeekNumbers Indica si se presenta o no en el control el
46/48
Marco Besteiro y Miguel Rodrguez Controles Windows
Mtodos
void SetDate(DateTime date) Define la fecha actual.
void SetSelectionRange (DateTime d1, DateTime Define las fechas
d2)
seleccionadas.
En esta aplicacin se actualiza el texto de una etiqueta con una fecha elegida en un
control DateTimerPicker o en un control MonthCalendar y se actualiza la fecha del
otro control (Figura 16.21).
Figura 16.21
47/48
Marco Besteiro y Miguel Rodrguez Controles Windows
propiedades que definen el look de los controles hasta dejar la apariencia que se
desee. Aada tambin una etiqueta con la propiedad Name etiqueta, y su propiedad
Text vaca.
Se debe imprimir en la etiqueta la fecha sin incluir el ao: por ejemplo, imagnese que
est definiendo cumpleaos para una agenda. Para ello, implemente los eventos
ValueChanged y DateChanged de los controles DateTimerPicker y MonthCalendar
respectivamente con el siguiente cdigo:
48/48