Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IntroduccionAplicacionesWindows PDF
IntroduccionAplicacionesWindows PDF
Para escribir aplicaciones Windows con C# se puede utilizar cualquier editor, por
simple que sea. Desde luego, ayudar a comprender mucho mejor el cdigo el hecho de
escribir las primeras aplicaciones con el block de notas. En este captulo se escribirn de
esta manera un par de aplicaciones, muy sencillas, que servirn para describir los
fundamentos de una aplicacin Windows.
Application
Esta clase es el corazn de una aplicacin Windows. Utilizando los mtodos de
esta clase se puede procesar los mensajes de Windows, comenzar y terminar la
aplicacin, etc...
Form
Esta clase representa las ventanas o cuadros de dilogo de una aplicacin
Windows.
Button, ListBox, TextBox, PictureBox
1/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
2/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Las clases situadas en el exterior del cuadro no pertenecen a este namespace. Se han
representado con un tono un poco ms claro las clases abstractas.
Todas las clases de este namespace derivan de la clase object. Es muy importante
conocer lo que aporta cada una de las clases base de las que hereda una determinada
clase que se vaya a utilizar porque hereda todas sus propiedades, mtodos y eventos.
3/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
La clase Object es clase base de todas las clases. Sobre ella se ha hablado
anteriormente, por lo que no se insistir en este punto.
La clase Control
Esta es una clase muy importante porque establece gran parte del comportamiento
comn de muchas clases que derivan de ella: una gran mayora de los controles de
Windows la tienen como clase base. Permite configurar grficamente la posicin y el
tamao de un control, capturar las entradas desde el teclado y ratn, etc. Ms adelante se
estudiar con profundidad esta clase.
A continuacin se describen dos clases base que derivan de la clase Control, llamadas
ScrollableControl y ContainerControl. Son muy importantes porque, aunque la
gran mayora de los controles no heredan de ellas, s lo hace la clase Form ver figura
14.1-, que es la clase de la que heredan todos los formularios.
La clase ScrollableControl
Se utiliza para definir un pequeo nmero de miembros que permiten a un control
soportar barras de desplazamiento horizontales y verticales.
Los controles que derivan de esta clase tienen dos propiedades relacionadas con ella que
son AutoScroll y ScroollSize.
this.AutoScroll = true;
this.AutoScrollMinSize = new System.Drawing.Size(250,250);
4/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
En la figura 14.1 se puede observar que no son muchos los controles que derivan de esta
clase. Pero entre ellos, adems de Form, est la clase Panel y la clase TabPage. Por esta
razn, si se desea que un PictureBox tenga barras de desplazamiento por ejemplo,
para visualizar una imagen ms grande que el propio control- se puede trabajar con un
panel y en l, introducir un PictureBox. Ms adelante se hace un ejemplo de esto, al
describir el control Panel.
La clase ContainerControl
Esta clase deriva de la clase ScrollableControl y adems define propiedades y
mtodos para relacionar un control contenedor de controles con los controles que
contiene. Permite tambin manejar el foco de la aplicacin. En la prctica, es muy
corriente cuando un formulario contiene varios controles y se desea utilizar la tecla
Tabulador para pasar el foco de uno a otro. Con muy poca programacin y muchas
veces se puede hacer visualmente, en tiempo de diseo - se puede forzar al foco para
que despus de un determinado evento siga un determinado orden en los controles que
lo van recibiendo. En el siguiente captulo, se utiliza esta funcionalidad en un ejemplo.
Todos los controles heredan las propiedades TabStop y TabIndex. Se utilizan para
definir el orden relativo para adquirir el foco respecto al control que los contiene un
formulario, un panel, etc- y se utilizan en combinacin con las propiedades anteriores.
5/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Los pasos necesarios para crear una aplicacin mnima para Windows son los
siguientes:
csc Form1.cs
6/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Form1
Observe que esta ventana tiene los tres botones en la parte superior derecha y el icono
de la esquina superior izquierda, cada uno de ellos con toda su funcionalidad. Adems,
se puede cambiar el formulario de tamao.
7/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Este primer paso es necesario porque las clases Application y Form pertenecen a este
namespace.
Se crea una clase de nombre Form1, que deriva de la clase Form. Por esta razn,
Form1 tendr todos los miembros que posee la clase Form, y podr hacer uso de
ellos. Un objeto de la clase Form representa una ventana estndar de Windows
que ser visualizada cuando se ejecute la aplicacin.
public class Form1 : Form
La clase Form1 tiene un nico mtodo adems de todos los que hereda de la
clase Form-, que es esttico y llamado Main(). Este es el punto de entrada de la
aplicacin. Cuando se ejecuta el fichero Form1.exe, de hecho, se est llamando
al mtodo Main() de ese fichero para comenzar en ese lugar la Aplicacin.
static void Main()
Run() proporciona una serie de mtodos y propiedades para manejar una aplicacin
como comenzar, terminar, parar y procesar los mensajes de Windows y para obtener
informacin sobre la aplicacin. Esta clase no puede ser heredada.
8/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
DoEvents()
Procesa todos los mensajes de Windows que estn en la cola. Se puede pensar en
este mtodo como un rpido camino para simular el comportamiento de un hilo.
Exit()
Termina la aplicacin.
ExitThread()
Termina el hilo.
Run()
Sobrecargado. Comienza la aplicacin.
9/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Cuando un formulario tiene como miembro un control, dicho control se visualizar con
el formulario. Se pueden aadir los controles que se deseen a un formulario. A
continuacin se realiza una sencilla aplicacin con un botn que cuando se pulsa cambia
el texto de su etiqueta y el ttulo del formulario. Para ello, debe aadirse a la clase
Form3 un botn, como se indica a continuacin:
//Aplicacion Form3
//Fichero Form3.cs
using System;
using System.Windows.Forms;
public class Form3 : Form
{
Button b;
public Form3()
{
b = new Button();
b.Text="Aceptar";
this.Text=Tercera aplicacin;
b.Click += new EventHandler(b_Click);
this.Controls.Add(b);
}
private void b_Click(object sender, EventArgs e)
{
this.Text = "Acabo de pulsar el botn";
b.Text = Pulsado;
}
static void Main()
{
Form3 unFormulario = new Form3();
Application.Run(unFormulario );
}
}
10/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
using System;
Button b;
b = new Button();
Se registra el evento Click del botn b para que sea manejado y tratado por el
mtodo b_Click.
this.Controls.Add(b);
11/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Los Formularios
Los formularios son objetos que exponen propiedades que controlan su apariencia,
mtodos que definen su comportamiento y eventos que proporcionan la posibilidad de
interaccin con el usuario. La labor del desarrollador es establecer el valor de las
propiedades cuando sea necesario y escribir el cdigo de respuesta a los eventos.
Es sencillo crear y disear un formulario. Para ello, si se utiliza Visual Studio .NET, se
puede aadir controles a su superficie arrastrndolos desde la caja de herramientas al
formulario. Una vez aadidos, cada uno de los controles pasa a ser miembro de esta
nueva clase que se est creando. Visual Studio va escribiendo el cdigo correspondiente
de manera automtica cada vez que el programador aade de manera visual un control
al formulario. Cuando se disea un formulario se est creando una clase derivada de la
clase Form y cuando se muestra en pantalla en tiempo de ejecucin, se est creando una
instancia de esa clase.
12/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Object
MarshalByRefObject
Component
Control
ScrollableControl
ContainerControl
Form
MiFormulario
A travs de la clase Form se pueden crear tambin ventanas MDI (Mltiple Document
Interface). En concreto, la propiedad IsMDIContainer puesta a true hace que un Form
sea de tipo MDI padre y la propiedad MDIParent conteniendo una referencia a una
ventana MDI hace que un Form sea de tipo MDI hijo.
En el siguiente captulo se tratar con profundidad la clase Form junto con las dems
clases del namespace System.Windows.Forms
13/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
En la pantalla que Visual Studio propone, escoja las siguientes opciones ( figura
14.9):
Tipo de Proyectos: Proyectos de Visual C#
Plantillas: Aplicacin para Windows.
Nombre: HolaMundo (este ser el nombre del proyecto).
Ubicacin: La que se desee. Piense que el entorno crear un directorio en la parte
inferior de la ventana se describe el path- con el nombre del proyecto donde se
ubicarn todos los ficheros necesarios para la aplicacin. Pulse el botn Aceptar.
14/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Se crea una aplicacin que por defecto muestra un formulario vaco. Pulse con el
botn derecho sobre l y seleccione Ver cdigo, como se indica en la figura
14.10.
15/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace HolaMundo
{
public class Form1 : System.Windows.Forms.Form
{
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}
Tngase en cuenta que aqu se han eliminado las lneas de comentarios. Es posible
que no puedan verse algunas de estas lneas. Puede ser que estn comprimidas.
Fjese que en la ventana de cdigo, en la parte izquierda aparece una lnea gris
vertical con unos cuadros muy pequeos (figura 14.11). Algunos de ellos tienen un
16/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
signo + y otros con un signo -. El signo + significa que esas lneas de cdigo estn
comprimidas para poder ver mejor el cdigo. Sin embargo, si el cursor del ratn
permanece unos instantes encima de una de ellas, aparece un cuadro con el cdigo
que est oculto, como se indica en la figura 14.11. Para descomprimir el cdigo,
se ha de pulsar sobre el signo +.
this.Text = "HolaMundo";
Es posible que cuando se pulsa sobre una propiedad aparezca una pequea descripcin
de ella en la parte inferior de la ventana de propiedades. Si no se puede ver, pulse con
el botn derecho del ratn en la barra de herramientas de la ventana de propiedades
donde se indica en la figura 14.12 y escoja la opcin Descripcin.
17/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
18/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
El entorno
El IDE facilita mucho las cosas al programador porque proporciona una ventana de
propiedades que corresponde al control que est seleccionado en cada momento. Basta
con ir asignando distintos valores a las propiedades de un control para que sin escribir
ningn cdigo, el entorno lo escriba por defecto. La ventana de propiedades ayudar
mucho en la edicin de los mtodos que manipularn los eventos.
Cuando se arranca Visual Studio.NET por primera vez aparece esta pantalla (figura
14.14).
19/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
20/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
a) Ventana de diseo: aqu aparecen varias ventanas que se pueden localizar por
medio de sus correspondientes pestaas: la pgina de inicio, la de diseo y la de
cdigo. Inicialmente esta ltima no aparece pero basta con pulsar con el botn
derecho sobre la ventana de diseo y escoger Ver cdigo. En la ventana de
cdigo, aparece una pequea etiqueta de ayuda cuando se deja el cursor inmvil
sobre un determinado mtodo.
b) Cuadro de herramientas, donde estn situados los controles ms comunes.
Para aadir cualquiera de ellos al formulario hay que seleccionarlo y arrastrarlo
hasta l. Si no est disponible esta ventana, site el ratn sobre el rectngulo de
texto cuadro de herramientas situado en el borde izquierdo de la pantalla o
bien sobre el icono situado en la parte superior derecha de la barra de
herramientas de Visual Studio, o en el men seleccione Ver/Ventana de
herramientas o pulse Control+ALT+X.
c) Ventana de propiedades. Esta ventana visualiza las propiedades del objeto que
est seleccionado. Pueden cambiarse las propiedades y el programa modifica el
cdigo para que corresponda a lo que se ha introducido en esta ventana. Esto
tambin sucede de modo inverso: si se cambia una determinada propiedad en la
ventana de cdigo, la modificacin aparecer en esta ventana de propiedades.
Sin embargo, es mejor realizar los cambios desde la ventana de propiedades.
Para verla, pulse F4 o en el men elija Ver/Ventana de propiedades o pulse
sobre el icono correspondiente de la parte superior derecha en la barra de
21/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
22/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
23/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
24/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Figura 14.20. Utilidad del cuadro de herramientas para almacener lneas de cdigo.
El IDE admite dos modos de interfaz distintos: MDI (Interfaz de documentos mltiples)
y Organizacin por fichas. Pueden cambiarse los modos utilizando el panel General de
las opciones de Entorno en el cuadro de dilogo Opciones: Herramientas/Opciones:
Configuracin.
25/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
En el modo MDI, el IDE proporciona una ventana principal que sirve de contenedor
visual y lgico para todas las ventanas de herramientas y de documentos. Se pede usar
CTRL+TAB para recorrer en ciclo los documentos abiertos en el editor. CTRL+TAB
funciona de forma similar a ALT+TAB, que recorre en ciclo los documentos abiertos
utilizados ms recientemente.
26/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Si se desea mover una ventana acoplable sin ajustarla a una posicin, se ha presionar
CTRL mientras es arrastrada a la posicin deseada.
La opcin Ocultar automticamente permite ver ms cdigo de una vez; para ello,
hay que minimizar las ventanas de herramientas a lo largo de los extremos del entorno
de desarrollo integrado. En este estado minimizado, el nombre y el icono de la ventana
se ven en una ficha. Se dispone de fcil acceso a las ventanas moviendo el cursor sobre
la ficha de ventana para que aparezca a la vista desde el extremo del IDE. La ventana
vuelve a quedar oculta una vez que pierde el foco. Para colocar una ventana en estado
Ocultar automticamente, se ha de hacer clic con el botn secundario del ratn en la
barra de ttulo y elegir Ocultar automticamente, o hacer clic en el icono de alfiler
situado en la barra de ttulo de la ventana. Esta operacin sirve para todas las ventanas
que estn acopladas a la ventana.
Haciendo doble clic sobre una ventana de estas caractersticas aparece un botn a la
izquierda del botn habitual de cierre de ventana. Este botn permite ocultar estas
ventanas en la barra derecha del entorno, para que estn ocultas mientras no hagan falta.
Para que vuelvan a aparecer, basta con que el ratn est sobre ellas un breve instante de
tiempo.
Estas ventanas tambin pueden acoplarse como pestaas en la parte inferior de cada una
de ellas. Se pueden arrastrar dichas pestaas para acoplar dichas ventana a otra.
27/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Organizar ventanas
Tipos de proyectos
Cuando se crea un nuevo proyecto, el entorno especifica la lista de opciones que estn
disponibles a la hora de trabajar con Visual C#, que son las que se indican a
continuacin. Sin embargo, algunas de ellas estn pensadas para trabajar a partir de
algunas de las otras opciones.
28/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Los controles.
Los controles ms comunes que pueden ser utilizados en las aplicaciones de tipo
WinForms son los que aparecen en la barra de herramientas. En el siguiente captulo se
estudiarn en profundidad los controles ms comunes.
29/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Una vez situados los dos controles sobre el formulario modifique las siguientes
propiedades, en la ventana de propiedades:
Botn:
Name: btnAceptar
Text: Aceptar
Caja de texto
Name: texto
Text: (Vaco)
30/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Y el cdigo fuente:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace HolaMundo
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnAceptar;
private System.Windows.Forms.TextBox texto;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
31/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}
Si se ejecuta la aplicacin se ver el formulario tal y como ha sido diseado, con los
controles Textbox y Button, pero stos no respondern a las pulsaciones del usuario ya
que no se han programado para ofrecer una respuesta a los eventos que provoque el
usuario sobre ellos.
Sin embargo, los controles tienen un comportamiento por defecto ante la interaccin del
usuario:
- Un Textbox permite que el usuario escriba en l.
- Un Button se hunde y sube cuando es pulsado a travs del puntero de ratn (o
pulsando Enter cuando tiene el foco).
32/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Los eventos.
Un evento es una accin a la cual se puede responder (se suele decir manejar) desde el
cdigo.
Todo formulario y todo control exponen un conjunto de eventos predefinido que pueden
ser programados por el desarrollador. Si ocurre uno de tales eventos y el mtodo
manejador del evento tiene cdigo, entonces se ejecuta en cdigo. En caso contrario no
ocurre nada.
Los tipos de eventos que pueden manejar y/o lanzar los objetos varan de unos objetos a
otros. Por motivos de herencia, existen ciertos eventos comunes a la mayora de
controles. Un ejemplo es el evento Click. Este evento pertenece a la clase Control y lo
tendrn, por lo tanto, todos los controles que deriven de Control. Si el usuario hace
Click sobre un botn, se ejecuta el cdigo que hay en el mtodo manejador del evento
Click para ese botn, cuya declaracin puede ser algo as:
33/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
34/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
Se puede observar que el entorno ha generado cdigo de modo automtico que asocia al
evento Click del botn al mtodo btnAceptar_Click, manejador del evento. Adems,
escribe el mtodo manejador vaco con el cursor preparado en el lugar preciso para que
el programador slo tenga que comenzar a escribir su cdigo de gestin del evento
(figura 14.26).
35/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
El cdigo es:
Figura 14.27
Figura 14.28
36/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows
ventana que indica la primera de las palabras que comienza por el texto escrito hasta
ese momento (figura 14.27). Si coincide con el que se desea, puede pulsarse la tecla
Aceptar o Enter y si no es as, se puede seguir tecleando o ir hacia arriba o hacia
abajo con las teclas de direccin. Una vez en la eleccin deseada, pulse la tecla
Enter.
Cuando se haya escrito el punto que separa el nombre del control de la propiedad o
el mtodo, aparecer otra ventana que se puede utilizar de la misma manera que la
anterior (figura 14.28). En ambos casos aparecer la estructura del control o de la
propiedad o mtodo, si se espera un instante.
37/37