Curso de VisualBasic.NET.

Hasta ahora hemos visto la forma de programar con Visual Basic.NET centr谩ndome en la estructura de programaci贸n del lenguaje, repasando los t茅rminos de m贸dulos, matrices, archivos de texto, creaci贸n de objetos, etc., etc. A partir de ahora me voy a centrar en la interfaz de usuario, y agregaremos formularios a nuestros proyectos, efectos de animaci贸n, herramientas visuales, etc.

Para empezar en esta pr谩ctica emprenderemos la creaci贸n y adici贸n de formularios extras al proyecto para generar entradas o salidas o mensajes especiales. Aprender谩s a seleccionar las propiedades del formulario para redimensionarlo y posicionarlo; agregar controles al mismo en tiempo de ejecuci贸n, cambiar la alineaci贸n de los objetos dentro del formulario o establecer el formulario de inicio a ejecutar.

Agregar nuevos formularios al programa.

Aunque ya hemos utilizado en este curso el doble formulario para realizar acciones en el programa, en esta pr谩ctica vamos a entrar en detalle con el tema en cuesti贸n. Cada nuevo formulario a帽adido al proyecto se considera como un objeto nuevo que hereda de la clase System.Windows.Forms.Form. Por defecto el nombre del primer formulario es Form1.vb, el segundo Form2.vb,..., FormN.vb, y se puede cambiar el nombre las veces que se quiera desde la Ventana de Propiedades del editor en la propiedad Text.

VB.NET ofrece una una gran flexibilidad de utilizaci贸n de formularios. Es posible hacer todos los formularios visibles al mismo tiempo en un programa, o se puede cargar o descargar a medida que el programa los necesite. Si se muestra m谩s de un formulario a la vez, se puede permitir que el usuario pase de un formulario a otro, o controle el orden en que se utilizan (desde el Explorador de soluciones).

En la siguiente tabla te muestro las aplicaciones t铆picas de formularios adicionales en un programa.

formularios de VB.NET

Utilizaci贸n de los formularios.

VB.NET ofrece una gran flexibilidad en la utilizaci贸n de formularios. Es posible hacer visible todos los formularios al mismo tiempo en un programa; o se puede cargar o descargar los formularios seg煤n las necesidades del programa.

A los formularios que exigen la atenci贸n del usuario cuando aparecen en pantalla se llaman cuadros de di谩logo. Los cuadros de di谩logo centran la atenci贸n en el usuario hasta que 茅ste hace clic en Aceptar, cancelar o cualquier acci贸n requerida. Existe una instrucci贸n que sirve para llamar al cudro de di谩logo, utilizando la sentencias ShowDialog que ya hemos utilizado anteriormente en otras clases.

Aunque para mostrar cualquier otro formulario se suele utilizar la instrucci贸n Show precedida del nombre del formulario.

Para ver el funcionamiento de la utilizaci贸n de varios formularios, vamos a agregar un nuevo formulario que nos sirva de ayuda para entender el proceso. Abre un nuevo proyecto (yo abrir茅 el anterior proyecto de Excepciones). Para esta pr谩ctica voy a crear un formulario que servir谩 de ayuda del programa. Para ello utilizar茅 el men煤 del proyecto Agregar en el cual a帽adir茅 un nuevo formulario de Windows Form que llamar茅 Ayuda.vb.

Nuevo formulario asignado al mismo proyecto

Como puedes ver en la siguiente imagen se crea un nuevo formulario que por defecto tiene un estilo determinado y se puede ver en el Explorador de soluciones.

explorador de soluciones

El formulario va a tener los siguientes elementos:

● Un ancho y alto de 800 x 640.
● Una etiqueta Label para mostrar un t铆tulo.
● Una etiqueta TextBox con la propiedad Multiline en True y que de un ancho y alto de 750;450. Tambi茅n tendr谩 un bot贸n de Aceptar que estar谩 en el centro del formulario. El aspecto visual, tendr谩 una apariencia a la parecida en la imagen:

formulario de ayuda

Formulario en forma Modal.

Un formulario se puede abrir de forma que realice una acci贸n y se cierre cuando el usuario decida cerrarlo o que se forme y utilice del modo como si fuese una ventana modal. En esta parte vamos a realizarlo.

Abre el c贸digo del Button1 (nombre por defecto) y escribe el siguiente c贸digo:

Me.DialogResult = DialogResult.OK

Pero antes de ejecutar, deber谩s de ir a My proyects (Explorador de soluciones), y en la pesta帽a Aplicaci贸n seleccionar la opci贸n de Formulario de inicio y seleccionar el formulario de ayuda creado.

formulario de ayuda

El formulario Ayuda.vb se comporta como un cuadro de dialogo en este proyecto. Aunque estamos abriendo directamente el formulario desde la aplicaci贸n y no siguiendo el orden de apertura (primero el Form1 y despu茅s el de Ayuda), despu茅s haremos que se abra directamente desde el Form1. Una vez el usuario haya leido la informaci贸n de ayuda y pulse el bot贸n de Aceptar, dicho bot贸n cerrar铆a el formulario ya que se ha establecido la propiedad DialogResul del formulario actual con (Me) en DialogResult.OK, una constante de VB.NET que indica que el cuadro de di谩logo ha sido cerrado y deberia devolver un valor de OK al procedimiento que lo llam贸. As铆 que volvamos al formulario original Form1.vb y agregemos un nuevo control Button que se llamar谩 Ayuda y servir谩 para abrir el formulario de ayuda. Tambi茅n vuelve a cambiar en My proyects, el inicio del formulario. El c贸digo de dicho bot贸n ser谩:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Ayuda.ShowDialog()
End Sub

As铆 que, ahora cuando se abra la aplicacion (y se produzca el error y el mensaje de error del anterior ejercicio), si pulsas Ayuda se abrir谩 el formulario de ayuda y cuando pulses el bot贸n de Aceptar, se cerrar谩 dicho formulario.

Como puedes ver se ha procedido a realizar una ventana modal en VB.NET con una simple instrucci贸n. Un cuadro de di谩logo m谩s complejo permitir铆a devolver otros valores mediante procedimientos similares como el DialogResult.Cancel, DialogResult.No, DialogResult.Yes, etc., etc., sin embargo cuando se establece la propiedad DialogResult, el formulario se cierra autom谩ticamente.

Formateo de Texto.

Abre el TextBox1 del formulario de Ayuda y escribe un texto conveniente para la aplicaci贸n. Eso s铆, te voy a marcar una serie de normas para los espaciados y el salto de l铆nea.

Salto de l铆nea.
Es l贸gico pensar que escribiendo desde el editor del control de propiedades del control TextBox en la propiedad Text, no sepamos interponer saltos de l铆nea. Pulsando el Intro insertaremos un salto de l铆nea.

Formas de escribir texto

El problema de esta forma de escribir es que no respeta el contenido del TextBox y cuando lo ejecutas el texto no se adapta correctamente como quisieras hacerlo, si no que se adapta al contenedor de una manera autom谩tica.

Formas de escribir texto

Para poder ajustar correctamente el texto al control y tener en cuenta los saltos de l铆nea, podemos utilizar la instrucci贸n vbCLrF. As铆 de esta forma podremos crear tantos saltos de l铆nea como queramos.

Formas de escribir texto

Pero eso s铆, ahora nos sobra demasiado espacio. Podemos justificar el texto.

Alineaci贸n.
La alineaci贸n del texto, aprovecha las propiedades del control TextBox1 para mover el texto a la izquierda, derecha o centrado. Para tal fin podemos utilizar la propiedad TextAlign y asignarla a la condici贸n requerira (Horizontal o Vertical, y centro, izquierda o derecha).

Si queremos centrar el texto dentro del control TextBox1, podemos utilizar la siguiente instrucci贸n:

Centrado de texto con TextAlign

Para alinear el texto a la derecha o la izquierda se utiliza el siguiente c贸digo:

TextBox1.TextAlign = HorizontalAlignment.Right 'alinea el texto a la derecha
TextBox1.TextAlign = HorizontalAlignment.Left 'Alinea el texto a la izquierda

Situaci贸n del formulario.

Por defecto el formulario se agrega dentro de la pantalla de acuerdo a la situacion actual del tiempo de ejecuci贸n. Por defecto la propiedad StartPosition est谩 en WindowsDefaultLocation, lo que har谩 que se abra el formulario en cualquier posici贸n de la pantalla independiente de la posici贸n del formulario en tiempo de dise帽o. Pero StartPosition tiene propiedades para establecer el formulario en otras posiciones como por ejemplo:

● WindowsDefaultLocation: El formulario se encuentra colocado en la ubicaci贸n predeterminada de Windows y tiene las dimensiones especificadas en el tama帽o del formulario.

● WindowsDefaultBounds: El formulario se encuentra colocado en la ubicaci贸n predeterminada de Windows y tiene los l铆mites establecidos por Windows de forma predeterminada. Es decir, tiene las mismas caracter铆sticas que la anterior propiedad.

● Manual: La posici贸n del formulario viene determinado por la propiedad Location.

● CenterScreen: El formulario est谩 centrado en la pantalla actual y tiene las dimensiones especificadas en el tama帽o del formulario.

● CenterParent: El formulario est谩 centrado en los l铆mites de su formulario principal.

Como puedes ver ahora el formulario se puede presentar en la posici贸n que quieras presentarlo junto a la propiedad Location que define la posici贸n relativa del formulario as铆 como de X e Y de las coordenadas en el plano de dos dimensiones.