Índice de la sección dedicada a .NET (en el Guille) Windows Forms Paso a Paso

Ejemplo 2 de Desarrollo de aplicaciones de escritorio con Windows Forms

Links para acceder a los otros ejemplos: Ejemplo 1, Ejemplo 2, Ejemplo 3



En este segundo ejemplo vamos a crear una aplicación de Windows Forms en la que tendremos en cuenta ciertas de las características que ya vimos en el ejemplo anterior, como son la adaptación de nuestros controles al tamaño del formulario, además de utilizar controles contenedores en los que insertar los distintos controles que formarán parte del diseño de nuestra aplicación.

Los pasos a seguir para crear este ejemplo serán los que habitualmente utilizaremos en cualquier aplicación creada con Visual Studio .NET y que son los mismos mostrados en el ejemplo anterior, por tanto no voy a explicar cómo crear una nueva aplicación ni como insertar los controles en el formulario, sólo veremos las "novedades" con respecto al mencionado ejemplo anterior. Lo que si haré es indicar esos pasos.

1- Iniciamos el Visual Studio .NET

2- Creamos un nuevo proyecto de Windows Forms (aplicación de escritorio) en el lenguaje de nuestra predilección.

3- Como ya hemos podido comprobar, cada vez que creamos un nuevo proyecto de aplicación para Windows, se añade un formulario cuyo nombre será Form1.

4- Si queremos que el nombre del formulario sea otro del que el entorno de desarrollo asigna por defecto, debemos seguir estos pasos:

5- Seleccionamos el archivo (formulario) en el explorador de soluciones y le cambiamos el nombre. Con esto lo único que conseguimos es que el nombre del archivo sea distinto, pero no cambia el nombre de la clase que tendrá ese formulario.


Figura 1, El explorador de soluciones

6- Debemos mostrar el código del formulario y cambiar todos los Form1 por el nombre que queramos que tenga nuestra clase.

Nota:
Hay que tener presente de que parte del código está oculto, sobre todo la parte que genera el diseñador de formularios, el cual suele estar en una sección denominada "Windows Form Designer generated code".


Figura 2, Parte del código generado estará oculto.

7- Si el proyecto lo hemos creado usando Visual Basic .NET, tendremos que indicarle cómo se llama el objeto inicial de nuestra aplicación de Windows. Para cambiar ese "objeto inicial" tendremos que mostrar el cuadro de diálogo del proyecto y seleccionar de la lista desplegable el nuevo formulario que queramos que tenga la aplicación como formulario de inicio.


Figura 3, En Visual Basic .NET hay que cambiar también el "objeto" inicial.

8- A continuación añadimos los controles que necesitemos y los posicionaremos en el formulario.

Nota:
Recuerda asignar los valores de la propiedad Anchor de cada uno de esos controles para que se adapten al nuevo tamaño que el usuario de nuestra aplicación quiera darle a la ventana, (siempre que así lo creas conveniente).
No te voy a indicar los valores a asignar, simplemente te mostraré los controles que tendrás que incluir en el formulario.
Lo único que te indicaré "paso a paso" será la forma de incluir controles dentro de las fichas (o tabs) que usaremos en este ejemplo.

9- En el formulario de este ejemplo vamos a usar un control Tab para incluir varios controles en las distintas fichas, cada una de las fichas podrán contener otros controles, pero la forma que ahora tiene el .NET Framework para manejar esos contenedores es diferente a como antes lo hacíamos (si es que has programado anteriormente con los controles comunes de Windows en Visual Basic, por ejemplo).
Estos controles que hacen de contenedor de otros controles, tienen la posibilidad de poder mostrar de forma automática las barras de scroll, (tanto horizontal como vertical), cuando sea necesario, para ello asignaremos un valor verdadero (True) a la propiedad AutoScroll.

Veamos el aspecto del formulario con los controles y después entraremos en detalles:


Figura 4, la primera ficha con varios controles

Figura 5, la segunda ficha con TextBox multilínea

10- El formulario contiene un control TabControl con dos fichas (TabPage) y un botón.
La primera ficha contiene 4 etiquetas y 4 cajas de texto.
La segunda ficha contiene una caja de textos, con los siguientes valores en las propiedades: MultiLine = True y Dock = Fill, de esta forma, la caja de texto ocupará todo el espacio de la ficha que lo contiene y permitirá que se muestren varias líneas de código.
En la primera ficha asignaremos un valor True a la propiedad AutoScroll, de forma que si el tamaño del formulario es pequeño, se muestren las barras de desplazamiento (scroll bars) que sean necesarias.

11- Otra de las propiedades que utilizaremos en nuestro formulario será la que nos permita controlar el tamaño más pequeño que podrá tener. Para conseguir eso, asignaremos a la propiedad MinimumSize el valor 200; 200, esto indica que tanto el ancho como el alto mínimo que queremos para nuestro formulario será de 200 puntos.
Cuando estemos en tiempo de diseño o en ejecución, no podremos asignar un valor menor al indicado, con lo cual nos aseguramos de que, como mínimo ese sea el tamaño del formulario.

12- Ahora veamos cómo crear nuevas fichas en el TabControl, (ya que cuando añadimos un control de fichas, por defecto no contiene ninguna).

13- La mejor forma es seleccionando dicho control y pulsando con el botón secundario del ratón, de esta forma se mostrará un menú contextual, entre cuyas opciones está la de Agregar ficha, tal como vemos en la siguiente figura:


Figura 6, Menú contextual para agregar nueva ficha al TabControl

14- Para añadir una nueva ficha seguiremos el mismo procedimiento o también podemos hacerlo desde la ventana de propiedades, bien seleccionando el link Agregar ficha o pulsando en los tres puntos que hay junto a la propiedad TabPages de dicha ventana de propiedades, tal como podemos comprobar en la siguiente figura:


Figura 7, propiedades del control TabControl

15- Para añadir controles a cualquiera de las dos fichas, haremos lo siguiente:

16- Seleccionaremos la ficha en la que queremos añadir los controles, en este caso será la primera. A la que añadiremos 4 etiquetas y 4 cajas de texto, tal como comenté al principio.

Nota:
Una vez que hayamos añadido una etiqueta y una caja de textos, podemos seleccionarlas para copiarlas, de esta forma, simplemente pegando los dos controles copiados tendremos otros dos controles, así hasta conseguir el total de 4 pares de etiquetas y cajas de texto.

17- Estos controles podemos asignarle los valores a la propiedad Anchor de forma que se adapten o "anclen" al contenedor en el que están insertados.

18- Una vez que tenemos todos los controles en el formulario y las fichas (tabs), podemos comprobar si las asignaciones realizadas tanto a las propiedades del formulario como a la de los demás controles funcionan como esperábamos, para comprobarlo, podemos cambiar el tamaño del formulario en tiempo de diseño y si nos satisface las asignaciones realizadas, podemos probarlo en tiempo de ejecución, para comprobar que todo funciona igualmente bien.

19- El único código que vamos a escribir en el formulario será el correspondiente al evento Click del botón Cerrar (button1), para insertar el código, haz doble click sobre ese control y se mostrará la ventana de código y escribe lo siguiente según el lenguaje que hayas usada para crear la aplicación.

En C# sería:

private void button1_Click(object sender, System.EventArgs e)
{
    this.Close(); 
}

En Visual Basic .NET sería este otro:

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
    Me.Close()
End Sub

 

Nota:
En definitiva se llama al método Close de la instancia actual, (el objeto creado en la memoria a partir de la clase formulario), y en ambos casos se podría haber prescindido de la instrucción que referencia a la instancia actual de un objeto: this (C#) o Me (VB)

 

20- Sigue este link si quieres ver las asignaciones hechas a las propiedades de cada uno de los controles, también te explico cómo hacer que una propiedad vuelva a tomar el valor que tenía originalmente.


Índice de ejemplos del University Tour 2003-2004

 

la Luna del Guille o... el Guille que está en la Luna... tanto monta...