Iniciar el formulario desde Main( )

Iniciar el formulario desde Main( )

En todos los ejemplos con formularios Windows realizados hasta el momento, la aplicación comienza su ejecución directamente por el formulario, lo cual resulta una comodidad, ya que no tenemos que preocuparnos de configurar el arranque del programa, a no ser que cambiemos el nombre del formulario, como hemos visto en los últimos apartados.

A pesar de todo, este es un escenario, que en muchas ocasiones no será válido, puesto que necesitaremos realizar alguna tarea antes de la visualización del formulario, como cambiar ciertas propiedades del mismo.

Podemos crear un procedimiento Main( ), bien en un módulo o en una clase, y configurarlo como punto de entrada de la aplicación, codificando en dicho procedimiento la instanciación del formulario

a mostrar. A continuación mostramos los pasos a dar para conseguirlo. Creamos un nuevo proyecto Windows, y abrimos la ventana de propiedades del proyecto; en la lista

Objeto inicial, elegimos esta vez el elemento Sub Main. Ver Figura 223.

Programación con Visual Basic .NET © Grupo EIDOS

Figura 223. Configurar un proyecto Windows para comenzar por un procedimiento Main( ).

Después añadimos un módulo al proyecto, empleando la opción de menú Proyecto + Agregar módulo,

de VS.NET, y en dicho módulo codificamos un procedimiento Main( ), que se encargue de instanciar un objeto del formulario. Si escribimos algo parecido a lo que muestra el Código fuente 436, el programa, en efecto, se iniciará, creará el formulario, pero inmediatamente lo cerrará.

Module Entrada Public Sub Main() ' instanciar un objeto de la clase del formulario Dim frmVentana As New Form1() frmVentana.Text = "probando desde código" frmVentana.Show()

End Sub End Module

Código fuente 436.

El código anterior, aunque válido, tiene un problema: un formulario, al tratarse de una ventana Windows, necesita lo que se denomina un bucle de mensajes, que le permita detectar los mensajes que le envía el sistema operativo, y actuar en consecuencia.

En .NET, para conseguir que un formulario disponga de un bucle de mensajes, debemos utilizar la clase Application, entre cuyos miembros compartidos, se encuentra el método Run( ). Cuando a dicho método, le pasemos un objeto formulario como parámetro, creará un bucle de mensajes para dicho formulario y lo mantendrá en ejecución hasta que el usuario de la aplicación lo cierre.

Modificando pues, el código anterior, por el mostrado en el Código fuente 437, conseguiremos que el formulario permanezca en ejecución una vez creado. Como detalle adicional, y a efectos meramente estéticos, asignamos un color de fondo a la ventana, de modo que el lector compruebe lo sencillo que resulta mediante el uso de la propiedad BackColor, y la estructura Color.

Module Entrada Public Sub Main () ' instanciar un objeto de la clase del formulario Dim frmVentana As New Form1() frmVentana.Text = "probando desde código"

' asignamos el color de fondo al formulario ' utilizando uno de los miembros de la

© Grupo EIDOS 28. Formularios Windows

' estructura Color de la plataforma frmVentana.BackColor = Color.Aquamarine

' utilizamos el objeto Application y su ' método Run() para crear un bucle de ' mensajes para el formulario y ' ponerlo en ejecución Application.Run(frmVentana)

End Sub End Module

Código fuente 437

La Figura 224 muestra el formulario resultante al ejecutar el proyecto.

Figura 224. Formulario puesto en ejecución mediante el objeto Application.