Está en la página 1de 37

Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Introduccin a las aplicaciones Windows


En la primera parte del libro se ha estudiado las caractersticas de C#, pero realmente, se
ha hecho una escasa utilizacin de las clases contenidas en el Framework.NET. Una vez
conocidos los conceptos de clase y herencia se puede aprovechar toda la potencia de la
programacin orientada a objetos y de este lenguaje, para utilizar el conjunto de clases
que ofrece la plataforma .NET.

En este captulo se har una breve introduccin a la programacin de aplicaciones para


Windows y se construirn algunos programas muy sencillos para explicar el esqueleto
de una aplicacin. En primer lugar, se implementa una aplicacin utilizando un editor
de textos cualquiera con objeto de explicar con detalle el cdigo necesario para
construir una aplicacin Windows y posteriormente se implementar otra con ayuda de
Visual Studio .NET para describir el entorno que proporciona el paquete.

Breve descripcin del namespace System.Windows.Forms

Toda la funcionalidad que se requiere para crear aplicaciones para Windows la


proporciona el namespace System.Windows.Forms.

El namespace System.Windows.Forms se compone de clases, estructuras,


delegates, interfaces y enumeraciones. En los prximos captulos se irn estudiando
muchos de ellos.

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.

La segunda opcin y realmente la ms prctica- es trabajar en el entorno de


desarrollo proporcionado por Visual Studio .NET. La utilizacin de este paquete
simplifica la tarea del programador y permite centrarse en lo que de verdad es su
misin: escribir el cdigo sin perder mucho tiempo con el diseo grfico de la
aplicacin.

De modo esquemtico el namespace System.Windows.Forms contiene las


siguientes clases o tipos:

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

Estas y otras muchas clases proporcionan toda la funcionalidad y flexibilidad de


los controles ms habituales de Windows.
StatusBar, Splitter, ToolBar, ScrollBar,
Son clases que corresponden a utilidades de Windows: barras de estado y de
desplazamiento, cajas de herramientas, etc.
ColorDialog, FileDialog,
Son las cajas de dilogo estndar.
Menu, MainMenu, MenuItem, ContextMenu
Se utiliza para crear mens y mens PopUp
ToolTip, Timer,
Facilitan la interactividad de las aplicaciones.

Los controles, en general, son instancias u objetos de estas clases. Se aaden a un


formulario cuando son miembros de la clase a la que pertenece dicho formulario. De
manera esquemtica, el rbol de herencia de las clases correspondientes a los controles
del namespace System.Windows.Forms es el de la figura 14.1:

2/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.1: Jerarqua de clases del namespace System.Windows.Forms

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.

A continuacin se explica brevemente la funcionalidad de las principales clases


base.

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 MarshalByRefObject define el comportamiento para trabajar con un tipo


por referencia y no por valor. En general, todos los controles son de tipo referencia y
heredan de esta clase.

El tipo Component proporciona la funcionalidad para que un control interacte con


su contenedor, como por ejemplo, un botn con el formulario que lo contiene. Adems,
proporciona la implementacin del mtodo Dispose(), que es el mtodo que se ejecuta
cuando, por ejemplo, se cierra un formulario. En el cdigo del formulario de una
aplicacin, una clase que heredada de la clase Form puede sobrescribir este mtodo de la
siguiente manera:

public override void Dispose()


{
base.Dispose();
//cdigo
}

Observe que las tres clases citadas pertenecen a namespace diferentes.

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.

Por ejemplo, imagine que en el constructor de un formulario, se incluyen las dos


siguientes lneas:

this.AutoScroll = true;
this.AutoScrollMinSize = new System.Drawing.Size(250,250);

La primera de ellas define si se establecen barras de desplazamiento o no en el control


el formulario en este caso-. La segunda, establece el tamao mnimo del control a partir
del cual las barras se harn visibles. En el ejemplo anterior, si el ancho o la altura del

4/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

formulario son menores de 250 pxeles, se visualizar una barra de desplazamiento


horizontal o vertical respectivamente.

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.

Si se pretende personificar las barras de desplazamiento o tener cierto control sobre


ellas, es mejor trabajar con los controles HScrollBar o VScrollBar, porque la clase
ScrollableControl no define muchos mtodos o propiedades para ella.

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.

Las propiedades y mtodos ms importantes de esta clase son:

ActiveControl: define el control activo.


ParentForm: es una referencia al formulario que contiene al control.
ProcessTabKey(): este mtodo permite ir o no adelante a travs de los
controles del contenedor de los controles.

La primera aplicacin Windows con el block de notas

Se puede escribir directamente el cdigo necesario para implementar una aplicacin


bsica para Windows en cualquier procesador de textos pero esta no es la mejor opcin
si el programa se complica un poco. Sin embargo, se anima al lector a trabajar de este
modo al principio porque le ayudar a comprender mejor el cdigo que Visual Studio
escribe por defecto. En este caso, se trabajar con el block de Notas, pero puede hacerse
con el editor que se prefiera.

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:

a) Derivar una clase de la clase System.Windows.Forms.Form. La clase Form


proporciona toda la funcionalidad de un formulario.
b) En el mtodo Main() de la clase que se est definiendo, invocar al mtodo
esttico Run() de la clase Application pasndole como argumento una
instancia u objeto de la clase.

Por ejemplo: ejecute el block de notas y escriba el siguiente cdigo y gurdelo en un


fichero denominado Form1.cs. Puede llamarse de cualquier forma, aunque la
extensin debe ser cs.

//Aplicacin Form1. Fichero Form1.cs


using System.Windows.Forms;
public class Form1 : Form
{
static void Main()
{
Application.Run(new Form1());
}
}

A continuacin, se ha de compilar el fichero desde el SDK. Para ello, se puede cargar


Visual Studio como se indica en la figura 14.2:

Figura 14.2. Cargando Visual Studio .NET en modo comando.

Para compilar, se ha de escribir la lnea (figura 14.3)

csc Form1.cs

La lnea anterior crea un fichero Form1.exe en el mismo directorio.

6/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Para ejecutarlo se ha de escribir (figura 14.3):

Form1

Figura 14.3: Modo de compilar y ejecutar una aplicacin en modo comando.

Al ejecutarlo, se despliega la siguiente ventana (figura 14.4):

Figura 14.4: La aplicacin Form1.exe

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.

Para comprender este primer programa, es preciso hacer algunas puntualizaciones y,


sobre todo, profundizar un poco en la clase Application. A continuacin, se describe
brevemente cada lnea del cdigo del programa anterior.

En primer lugar se importa el namespace System.Windows.Forms:


using System.Windows.Forms;

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

Con la directiva using se le indica al compilador que importe el namespace. De


esta manera, para hacer referencia a la clase, basta con invocarla con su nombre
Form- y no con el nombre completo -System.Windows.Forms.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()

El mtodo Main() slo tiene una nica lnea de cdigo.


Application.Run(new Form1());

En realidad, la lnea anterior podra haberse desdoblado en dos:


Form1 unFormulario = new Form1();
Application.Run(unFormulario);

En la primera se crea un objeto de la clase Form1 y en la segunda se le pasa ese


objeto al mtodo Run().

Lo primero que hace el programa es llamar al constructor de la clase Form1 para


crear un objeto o instancia de la clase Form1 . Este objeto se le pasa al mtodo
Run() de la clase Application.

Run() es un mtodo esttico de la clase Application. Si a este mtodo se le


pasa un objeto que deriva de la clase Form comienza una aplicacin estndar de
Windows, visualizndose la ventana correspondiente al objeto pasado como
argumento.

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.

En general, el mtodo Run inicializa el bucle de mensajes de la aplicacin en el hilo


actual y, opcionalmente, hace visible un formulario. Invocando los mtodos Exit o
ExitThread se puede parar el bucle o el hilo. Puede llamar a DoEvents para procesar
los mensajes mientras el programa est en un bucle.

8/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Los mtodos ms importantes de clase Application son:

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.

La estructura de estos mtodos son las siguientes:


public static void DoEvents();
public static void Exit();
public static void ExitThread();
public static void Run();
public static void Run(System.Windows.Forms.ApplicationContext
contexto);
public static void Run(System.Windows.Forms.Form formularioPrincipal);

En el ejemplo anterior, se podra invocar cualquiera de los miembros de la clase Form1.


Por ejemplo, se puede escribir un ttulo en la cabecera de la ventana con la propiedad
Text- o asignar un color de fondo al formulario con la propiedad BackColor. En este
ltimo caso, se debe importar el namespace System.Drawing en donde se sita la clase
Color.

El cdigo correspondiente es:


//Aplicacion Form2
//Fichero Form2.cs
using System.Windows.Forms;
using System.Drawing;

public class Form2 : Form


{
static void Main()
{
Form2 unFormulario = new Form2();
unFormulario.Text = "Primer Formulario";
unFormulario.BackColor=Color.Blue;
Application.Run(unFormulario );
}
}

Guarde este fichero con el nombre Form2.cs, complelo y ejectelo.

La salida de este programa es (figura 14.5):

9/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.5. Salida del programa Form2.exe

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 );

}
}

Si se guarda el fichero con el nombre Form3.cs y se ejecuta la programa, la salida ser


(Figura 14.6):

10/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.6. Salida del programa Form3.exe.

A continuacin, se realizan algunas consideraciones sobre algunas lneas del programa


anterior:

using System;

Se importa el namespace System para poder tratar los eventos

Button b;

Se declara un botn en el formulario como miembro de la clase Form3.

b = new Button();

Se crea un objeto de tipo Button en el constructor de Form3

b.Click += new EventHandler(b_Click);

Se registra el evento Click del botn b para que sea manejado y tratado por el
mtodo b_Click.

this.Controls.Add(b);

Se aade el botn b a la coleccin Controls de controles del formulario (this).

private void b_Click(object sender, EventArgs e)


{
this.Text = "Acabo de pulsar el botn";
b.Text = Pulsado;
}

Este es el mtodo que se ejecuta cuando se pulsa el botn. En primer lugar se


modifica el texto del formulario (this) y posteriormente el del botn (b).

11/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Antes de realizar un programa parecido con el apoyo de Visual Studio, es interesante


hacer una introduccin a los formularios.

Los Formularios

Como se ha venido diciendo Windows Forms es la nueva plataforma de desarrollo de


aplicaciones para Microsoft Windows. Est basada en el Framework .NET, ofreciendo
un conjunto de clases claro, orientado a objetos y extensible. Adems, Windows Forms
puede actuar como interfaz de usuario local en soluciones distribudas multi-capa.

Un formulario es un objeto o instancia de la clase System.Windows.Forms.Form. Es


una ventana, generalmente rectangular, que puede ser utilizada para presentar
informacin al usuario y aceptar una entrada del mismo. Los formularios pueden ser
ventanas normales, ventanas padre o hijo MDI, cuadros de dilogo, o simples
superficies para rutinas grficas.

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.

Aunque la creacin, diseo, etc... de un formulario puede hacerse directamente desde


cualquier editor, el modo ms cmodo, rpido y sencillo es utilizar el entorno Visual
Studio.

En la figura 14.7 se representa la jerarqua de herencia de la clase Form:

12/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Object

MarshalByRefObject

Component

Control

ScrollableControl

ContainerControl

Form

MiFormulario

Figura 14.7. Arbol de herencia de la clase Form.

Como se ha visto anteriormente, es posible utilizar un Form como la clase de inicio de


una aplicacin. Para ello ha de contener el mtodo Main con el cdigo para crear y
mostrar el Form. Cuando se cierre el Form de inicio, la aplicacin ser tambin cerrada.

Cualquier formulario puede invocar cualquiera de los mtodos y propiedades de las


clases de las que hereda. Por eso es fundamental conocer los detalles que implementan
cada clase base.

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

Diseo de una aplicacin bsica con Visual Studio .NET

A continuacin se va a disear una aplicacin sencilla por medio de Visual Studio


.NET.

La aplicacin Hola Mundo, mostrar el texto Hola Mundo en el ttulo del


formulario de la aplicacin.

Los pasos a realizar son:

Crear un proyecto Aplicacin para Windows: Para ello, en el men, seleccione


Archivo/Nuevo/Proyecto...(Figura 14.8)

Figura 14.8. Creando un nuevo proyecto.

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

Figura 14.9. Ventana para describir un nuevo proyecto.

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.

Figura 14.10. Ventana de diseo del formulario.

15/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Aparece de manera automtica la ventana donde se almacena el cdigo


correspondiente a esta aplicacin y que tiene de nombre Form1.cs. Pulsando sobre
las pestaas de la parte superior se puede intercambiar entre la ventana anterior (
Form1.cs [Diseo]) y la ventana de cdigo Form1.cs. El cdigo ser parecido al
siguiente:

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 );
}

#region Windows Form Designer generated code


private void InitializeComponent()
{
this.components=new Container();
this.Size = new System.Drawing.Size(300,300);
this.Text = "Form1";
}
#endregion

[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 +.

Figura 14.11. Ventana de cdigo del formulario Form1.

La propiedad Text de la clase Form determina el ttulo que se mostrar en la barra de


ttulo del formulario. Bien directamente sobre el cdigo se ha sealado en negrita en el
cdigo anterior-, o bien mediante la ventana de propiedades del formulario (figura
14.12) se puede cambiar esta propiedad. En el primer caso, slo tiene que cambiar el
texto de la lnea en negrita por la lnea

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

Figura 14.12: Ventana de propiedades

Antes de compilar es recomendable guardar todos los ficheros de su aplicacin:


Archivo/Guardar todo.
Para compilar la aplicacin seleccione en el men Generar/Generar. Si se hubiera
producido algn error, el entorno se lo har saber en la ventana Resultados que
aparece en la parte inferior. En caso contrario, aparecern los mensajes de error con
una pequea descripcin. Haciendo doble click sobre cada error, el cursor se sita
sobre la lnea donde est el error en el cdigo.

En caso de que la compilacin haya sido satisfactoria, aparecer en dicha pantalla el


aviso:
-------------------- Listo ----------------------

Generar: 1 correctos, 0 incorrectos, 0 omitidos

Para ejecutar el programa: Depurar/Iniciar o pulse F5 o bien pulse sobre el icono


de color verde representado por un pequeo tringulo. El resultado que se obtiene es
el de la figura 14.13.

18/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

figura 14.13. Resultado de la ejecucin del programa HolaMundo.

El entorno

Es importante conocer con detalle el entorno visual de programacin que proporciona


Visual Studio .NET. El entorno de desarrollo integrado (IDE) permite disear el interfaz
grfico de manera visual. El programador slo tiene que arrastrar los controles que
desee hasta su lugar de destino en un formulario. En ese momento, el entorno aade el
cdigo correspondiente a ese control en la ventana de cdigo.

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.

El editor de cdigo es inteligente en el sentido de que sugiere mtodos o parmetros


o nombres de controles conforme se escribe. Esta caracterstica es de gran ayuda ya que
permite detectar con facilidad los errores que comete el programador al escribir su
cdigo.

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

Figura 14.14: Pantalla inicial de Visual Studio.NET

Para aprovechar la potencia que ofrece el entorno, es necesario tener conexin a


Internet. Sin embargo, la opcin Mi Perfil, proporciona la posibilidad de definir a
grandes rasgos el entorno de trabajo. El hecho de elegir algunas de estas opciones
acelera de modo considerable algunas funciones del entorno, como puede ser la ayuda.
Sin embargo, no es necesario definir ningn perfil para poder trabajar con el programa.

El entorno es realmente flexible y las posibilidades para el programador a la hora de


configurarlo son muchas. Por ello, es importante que se conozca cules son las
posibilidades que tiene y cmo se puede personalizar.

20/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.15: Entorno de trabajo de Visual Studio.NET

En la figura 14.15 se representa el entorno de trabajo en donde se pueden distinguir


varias zonas:

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

herramientas de Visual Studio. En la ventana de propiedades los dos primeros


iconos de la parte superior izquierda permiten presentar la informacin de esta
ventana por categoras o por orden alfabtico. Los dos siguientes permiten que
esta ventana visualice las propiedades o los eventos del control que est
seleccionado.
d) Una herramienta de incalculable valor es el Examinador de objetos que nos
permite, de un vistazo, estudiar los distintos mtodos y propiedades de cada
clase o tipo (Figura 14.16). Para verlo, seleccione en el men
Ver/OtrasVentanas/Examinador de objetos o pulse Control+ALT+J.
Observe que en la parte inferior se escribe la estructura completa del mtodo o
propiedad elegida.
e) Se aconseja al lector que utilice la ayuda dinmica. Para ello, elija en el men:
Ayuda/Ayuda dinmica. Se puede observar que cuando se escribe cdigo, esta
ventana sugiere distintas posibilidades de ayuda.

Figura 14.16. El examinador de objetos

f) Otra estupenda y utilsima herramienta que proporciona Visual Studio es un


Visualizador de clases llamado WinCV, cuyo ejecutable se encuentra en el
directorio Microsoft.NET \ FrameworkSDK \ Bin. Tiene el aspecto de la
figura 14.17. Este visualizador informa de la ubicacin de la clase tanto del
namespace como del Assembly- y de su definicin. Es muy sencillo recorrer sus
mtodos, propiedades, etc.

22/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.17. Visualizador de clases WinCV.

Adems, el explorador de soluciones y la ventana de vistas de clase ayudan


mucho en la construccin de proyectos. Si se pulsa con el botn secundario sobre el
nombre del proyecto en el explorador de soluciones (figura 14.18) es posible
aadir un nuevo formulario o clase al proyecto, etc. Se puede modificar el nombre
del fichero .cs bien desde la ventana de propiedades o bien pulsando con el botn
derecho, cambiando el nombre del fichero. Si se hace lo mismo sobre el nombre de
un formulario en la ventana de vista de clases se puede aadir una propiedad,
mtodo, campo o indexador a la clase (figura 14.19).

23/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.18. Men contextual del explorador de soluciones

24/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.19. Men contextual de la vista de clases.

El entorno proporciona otra herramienta muy til cuando se est trabajando en la


ventana de cdigo de un proyecto de cualquier clase. Siempre que se guarde algo en el
portapapeles, ese texto queda almacenado en la barra de herramientas. Cuando se
necesite ese texto nicamente deber arrastrarse el texto como si fuera un control-
hasta la ventana de cdigo y se pegar en la ventana (figura 14.20).

Figura 14.20. Utilidad del cuadro de herramientas para almacener lneas de cdigo.

Visual Studio incluye otras herramientas y opciones que ayudan a administrar un


proyecto y las diferentes ventanas del entorno.

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

Figura 14.21: Personalizacin del interfaz de usuario.

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.

En el modo de organizacin por fichas se tabula las ventanas de documentos de forma


conjunta. El IDE utiliza este modo de forma predeterminada. Para cambiar de una
ventana a otra basta con pulsar sobre la pestaa correspondiente, aunque tambin se
puede hacer pulsando las teclas Control+TAB. Si en un momento determinado se desea
ver un formulario concreto o su cdigo correspondiente puede irse al explorador de
soluciones y pulsar con el botn derecho en el formulario concreto y elegir la opcin
Ver Cdigo.

El IDE contiene dos tipos bsicos de ventanas: ventanas de herramientas y ventanas


de documentos. Los dos tipos de ventanas se comportan de forma algo distinta entre s.

En el men Ver se enumeran las ventanas de herramientas. Se pueden mostrar y


ocultar automticamente, vincular con otras ventanas de herramientas, acoplar al IDE,
flotar. Se pueden abrir bien desde el men o bien desde los iconos situados en la parte
superior derecha del entorno.

Se pueden acoplar o desacoplar las ventanas de herramientas activando o desactivando


la opcin Acoplable en el men Ventana o pulsando con el botn derecho en la parte
superior de la ventana en cuestin. Cuando una ventana de herramientas es acoplable,
flota por encima de las dems ventanas o se ajusta a un lado de la ventana de la
aplicacin. Cuando una ventana de herramientas no es acoplable, aparece como una
ventana de documento. Para acoplar u ocultar ventanas de herramientas, se ha de

26/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

seleccionar Acoplable en el men Ventana o con el botn derecho en el ttulo de la


ventana y, a continuacin, arrstrarla hacia un extremo de la ventana del entorno de
desarrollo hasta que pueda verse un esquema en la ubicacin que se desee. Para mover
una ventana acoplable sin ajustarla a una posicin, se ha presionar CTRL mientras es
arrastrada a la posicin deseada.

Si se desea mover una ventana acoplable sin ajustarla a una posicin, se ha presionar
CTRL mientras es arrastrada a la posicin deseada.

Adems, pueden mostrarse de una vez varias instancias de ciertas ventanas de


herramientas. Por ejemplo, puede mostrarse ms de una ventana de cdigo. Para ello, se
ha de elegir Nueva ventana en el men Ventana. Para cerrarla puede pulsarse con el
botn derecho y elegir la accin Cerrar.

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.

Las ventanas de herramientas en estado Ocultar automticamente se visualizan


temporalmente cuando la ventana posee el foco. Para ocultar de nuevo la ventana, hay
que seleccionar un elemento fuera de la ventana actual. Una vez que la ventana pierde el
foco, vuelve a quedar oculta.

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.

Las ventanas de documentos se crean dinmicamente cuando se abren o crean archivos


u otros elementos. La lista de ventanas de documentos abiertos aparece en el men
Ventana.

Algunas ventanas de documentos dentro del IDE son realmente ventanas de


herramientas que tienen el rasgo de acoplable desactivado. Para acoplar estas
ventanas, hay que elegir Acoplable en el men Ventana.

Los nuevos documentos abiertos utilizarn la misma ventana mientras no se


haya modificado el documento actualmente abierto.

27/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Organizar ventanas

Es posible aumentar el espacio de presentacin y edicin del cdigo dependiendo de


cmo se organicen las ventanas en el IDE. Existen diversas opciones para organizar
ventanas en el IDE, entre las que se encuentran las siguientes:

Vincular varias ventanas mediante fichas.


Acoplar ventanas de herramientas a un extremo del entorno de desarrollo.
Minimizar ventanas de herramientas a cualquier extremo del entorno de
desarrollo.
Colocar ventanas en distintos monitores.
Colocar en mosaico las ventanas de documentos.

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.

Aplicacin para Windows


Crea una aplicacin con una interfaz de usuario de Windows
Biblioteca de clases
Crea clases que se van a utilizar en otras aplicaciones.
Biblioteca de controles de Windows
Crea controles que se van a utilizar en aplicaciones para Windows
Aplicacin Web ASP.NET
Crea una aplicacin con una interfaz de usuario Web
Servicio Web ASP.NET
Crea servicios Web que se van a utilizar desde otras aplicaciones
Biblioteca de controles Web
Crea controles que se van a utilizar en aplicaciones Web
Aplicacin de consola
Crea una aplicacin de lnea de comandos.
Servicio de Windows
Crea servicios para Windows
Proyecto vaco
Proyecto vaco para crear una aplicacin local
Proyecto Web vaco
Proyecto vaco para crear una aplicacin Web
Nuevo proyecto en carpeta existente
Proyecto vaco creado en una carpeta existente

En los prximos captulos se irn tratando cada una de estas opciones.

28/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Los controles.

Algunos miembros o campos de un formulario pueden ser objetos de la clase Control o


de alguna clase derivada de ella. Se les llama controles del formulario. Cada tipo de
control corresponde a una clase y tiene unas propiedades, mtodos y eventos
particulares que permiten enriquecer la interfaz de usuario y la funcionalidad de una
aplicacin.

Se pueden aadir controles a un formulario en tiempo de diseo, mediante el editor de


Visual Studio o tambin dinmicamente, es decir en tiempo de ejecucin, lo cual
requiere codificacin por parte del desarrollador.

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.

Adicin de controles a un formulario.

Existen dos modos de aadir un control a un Form:


Escribiendo directamente en la ventana de cdigo. Por ejemplo, para aadir un
botn se escribira:
...
...
//Se crea un objeto de la clase
Textbox texto = new Textbox();

//Se modifican algunas de sus propiedades


texto.Size = new Size(25,125);
texto.Location = new Point(25,25);

//Se aade al formulario


this.Controls.Add (texto);
...
...
Visualmente, por medio de Visual Studio. Aada, por ejemplo, al formulario de la
aplicacin HolaMundo, una caja de texto y un botn. Lo nico que se ha de hacer es
arrastrarlos desde el cuadro de herramientas hasta el formulario (ver figura 14.23):

29/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.23. Aadiendo controles a un formulario.

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)

El aspecto del formulario ser (figura 14.24):

30/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Figura 14.24. Diseo de la aplicacin HolaMundo.

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 );
}

#region Windows Form Designer generated code

31/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

private void InitializeComponent()


{
this.btnAceptar = new System.Windows.Forms.Button();
this.texto = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// btnAceptar
//
btnAceptar.Location=new System.Drawing.Point(32,80);
this.btnAceptar.Name = "btnAceptar";
this.btnAceptar.TabIndex = 0;
this.btnAceptar.Text = "Aceptar";
//
// texto
//
texto.Location =new System.Drawing.Point(128,80);
this.texto.Name = "texto";
this.texto.TabIndex = 1;
this.texto.Text = "";
//
// Form1
//
AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(264, 229);
this.Controls.AddRange(new
System.Windows.Forms.Control[] {
this.texto,
this.btnAceptar});
this.Name = "Form1";
this.Text = "HolaMundo";
this.ResumeLayout(false);

}
#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).

Conforme el usuario interacta sobre el interfaz van ocurriendo los eventos.

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.

Los eventos pueden ser generados por:


- Una accin del usuario. Por ejemplo: pulsar una tecla o un botn del ratn, o mover
el ratn.
- El cdigo del programa.
- El sistema.

Las aplicaciones controladas por eventos ejecutan cdigo en respuesta a distintos


eventos. Ese cdigo ha de estar en mtodos llamados manejadores de eventos.

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:

private void btnAceptar_Click(object sender, EventArgs e)


{

Todo mtodo manejador de evento tiene al menos dos parmetros:

sender: es una referencia al objeto que ha lanzado el evento. Por ejemplo, si se


pulsa un botn, sender es una referencia al botn que se ha pulsado.
e: es una referencia a un objeto de la clase EventArgs, que contiene informacin
sobre el evento.

Pero el mtodo manejador en s no tiene utilidad si no se asocia al evento, que va a


manejar. Por ejemplo,para responder a la pulsacin de un botn sobre dicho formulario
es necesario asociar el evento Click del botn a un mtodo manejador de dicho evento.
En ese caso, en el cdigo del formulario es necesario aadir la siguiente instruccin:

//constructor del formulario


btnAceptar.Click += new System.EventHandler (this.btnAceptar_Click);

Se indica en esta lnea que el evento Click sobre btnAceptar (btnAceptar.Click) va


a ser auditado o escuchado por un manejador de la clase System.EventHandler, el
cual direccionar o dirigir el tratamiento del evento al mtodo que recibe como
parmetro en su constructor y que es btnAceptar_Click (this indica que es un
mtodo que pertenece al formulario).

33/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Por supuesto, el mtodo btnAceptar_Click debe estar implementado:

protected void btnAceptar_Click (object sender, System.EventArgs e)


{
...
...
...
}

Existen dos modos de implementar el tratamiento de eventos en una aplicacin:

Aadiendo el cdigo comentado al fichero o ficheros fuente de la aplicacin


como ya se ha hecho anteriormente, en este mismo captulo.
Utilizando el asistente del Visual Studio. A continuacin se muestra cmo
hacerlo para la aplicacin HolaMundo. Se desea que cuando se pulse el botn
btnAceptar se escriba Hola Mundo en la caja de texto texto.

El primer paso es seleccionar el control btnAceptar grficamente o bien desde el


ComboBox situado en la parte superior derecha de la ventana propiedades (figura
14.25) y pulsar el icono Eventos un pequeo rayo- situado en la parte superior
derecha de la ventana de propiedades. Al hacerlo, la ventana de propiedades
mostrar una lista con los eventos que soporta btnAceptar.

Figura 14.25: Eventos del botn btnAceptar en la ventana de propiedades.

34/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

Elija Click, haciendo doble click sobre su nombre. Aparece entonces la


ventana de cdigo de la aplicacin con el cdigo de gestin del evento. El cursor se
sita en el lugar preciso para implementar el mtodo.

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).

Figura 14.26. Ventana de cdigo.

A continuacin, aada el cdigo de gestin del evento Click a la funcin


btnAceptar_Click, que es el nombre que el IDE proporciona al mtodo, por defecto.
Dicho nombre puede cambiarse de dos maneras: modificando el nombre directamente
en la ventana de cdigo o bien hacindolo en la ventana de propiedades. Si se desea
hacer, se ha de pulsar sobre la pestaa de diseo, seleccionar el botn y pulsar una sola
vez, slo para seleccionarlo- sobre el nombre del evento. Finalmente, se ha de
seleccionar todo y cambiarlo. Es ms aconsejable hacer este tipo de cambios a travs de
la ventana de propiedades en lugar de hacerlo directamente en la ventana de cdigo.
En general, deben aceptarse los nombres que proporciona el IDE porque estn siempre
compuestos por el nombre del control y por el del evento, separados por un guin bajo.
Slo es una buena idea cambiarlos cuando un mismo mtodo vaya a manejar varios
eventos de distintos controles.

35/37
Marco Besteiro y Miguel Rodrguez Introduccin a las Aplicaciones Windows

El cdigo es:

protected void btnAceptar_Click (object sender, System.EventArgs e)


{
texto.Text = "Hola Mundo";
}

Observe que cuando se va escribiendo el cdigo, el IDE proporciona una herramienta


inteligente de incalculable valor que ayuda a completar el cdigo con mucha mayor
rapidez y posiblemente con muchos menos errores (figuras 14.27 y 14.28).

Figura 14.27

Figura 14.28

Cuando se est escribiendo el nombre del control, en mitad de la palabra, si se pulsa


simultneamente las teclas Control y Barra espaciadora, aparecer una pequea

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.

Tras compilar y se puede ejecutar la aplicacin. Si se pulsa el botn btnAceptar,


aparece Hola Mundo en la caja de texto como se indica en la figura 14.29.

Figura 14.29. Programa HolaMundo.

37/37

También podría gustarte