Você está na página 1de 11

FORMULARIOS

Los formularios son tratados como controles con sus propiedades, eventos y mtodos. Aunque digamos que se trata de un control especial que utilizamos para contener los controles ms usuales con los que construiremos nuestras aplicaciones: textbox, label, commandbutton, etc... En este captulo vamos a ver las propiedades y eventos ms importantes de los formularios, como trabajar con mltiples formularios y como se establece la comunicacin entre ellos.

Propiedades
Las propiedades ms comunes de los formularios y que son similares al resto de los controles son las siguientes: Name: Nombre del formulario, necesario para llamar al formulario desde el cdigo. Caption: Texto que aparece en el ttulo del formulario Backcolor: Color de fondo del formulario. Forecolor: color del texto del formulario.

Otras propiedades que son prppias de los formularios y que es importante conocerlas para realizar una buena presentacin en nuestras aplicaciones son las siguientes: WindowState: Nos permite indicar el modo en el que aparecer el formulario cuando sea llamado. Tiene tres posibles valores: 0 - Normal 1 - Minimizado. 2 - Maximizado. MinButton y MaxButton: Son dos propiedades que admiten nicamente los valores True o False. Permiten que queden habilitados los botones minimizar y maximizar, respectivamente de un formulario.Nos sirven para controlar que el usuario no pueda

cambiar el tamao en que presentemos un formulario en pantalla.Si slo desactivamos una de las propiedades, el botn correspondiente aparecer desactivado, pero si desactivamos las dos propiedades, no aparecer ninguno de los 2 botones, nicamente lo har el botn con la "x" de cerrar. MinButton = True MaxButton = True MinButton = False MaxButton = True MinButton = True MaxButton = False MinButton = False MaxButton = False

ShowInTaskbar: Mediante esta propiedad podremos controlar que determinado formulario aparezca o no en la barra de tareas de Windows. En una aplicacin con mltiples formularios, si para cada uno de los que aparezca en pantalla, nos aparece tambin en la barra de tareas, al final la barra estar llena de aplicaciones. Podemos hacer que determinados formularios no aparezcan en ella colocando esta propiedad a False. Icon: Nos permite modificar el icono que aparece a la izquierda de la barra del ttulo de cualquier formulario, que es donde aparece el men de control, para personalizarlo en nuestra aplicacin El icono que aparece por defecto en todos los formularios se puede cambiar por otro ms simptico:

ControlBox: Controla la aparicin del men de control. Esta propiedad por defecto est activada, aunque si la ponemos a False, no slo hacemos desaparecer el icono que simboliza al men de control, sino que desaparecen tambin los botones de minimizar, maximizar y cerrar. Unicamente aparece la barra de titulo con el caption:

Si adems de colocar ControlBox a False, colocamos MinButton y MaxButton a False y dejamos vaca la propiedad Caption, es decir sin nada en el ttulo, nos aparecer un formulario sin barra de titulo, es decir, nicamente un rectngulo gris que s podremos cambiar de tamao apuntando sobre el borde.

BorderStyle: Esta propiedad es la que ms opciones tiene y la que ms posibilidades ofrece para cambiar el aspecto de nuestros formularios. El cambiar el valor de esta propiedad afecta tambin a las propiedades MinButton, MaxButton y ShowInTaskbar que cambian automticamente segn la opcin que hayamos seleccionado. En la siguiente tabla aparece una explicacin de cada una de sus opciones y de que valor adoptan otras propiedades del formulario: Opciones de BorderStyle Utilidad No aparecen bordes ni barra de titulo. No podemos modificar su tamao de ninguna forma. Sirve para pantallas de presentacin al principio de nuestra aplicacin No se puede cambiar su tamao.Ni siquiera se puede maximizar haciendo
MinButto n MaxButto n ShowInTaskba r

Muestra

0- None

False

False

False

1 - Fixed Single

False

False

True

doble click sobre la barra del ttulo, algo que s se puede hacer desactivando los botones MinButton y MaxButton en un formulario normal Formulario por defecto de VB.Contiene todos los botones de la barra del ttulo, se puede cambiar su tamao actuando sobre el borde y aparece en la barra de tareas.

2 - Sizable (aparece por defecto)

True

True

True

3 - Fixed Dialog

No se puede cambiar su tamao y no False aparece en la barra de tareas Aparece con la barra de titulo ms pequea, es el que utiliza VB para mostrar la caja de herramientas . No aparece el icono del

False

False

4 - Fixed ToolWindo w

False

False

False

men de control ni aparece en la barra de tareas. Igual que el anterior pero s permite modificar su tamao actuando sobre el borde.

5 - Sizable ToolWindo w

False

False

False

UTILIZACION DE MULTIPLES FORMULARIOS


Para utilizar varios formularios en nuestra aplicacin tendremos que aadir cada uno de ellos mediante la opcin de men Insert / Form o pulsando sobre el botn .

Mtodo Show
Para llamar a un formulario desde el cdigo utilizaremos el mtodo Show. Si el formulario 2 tiene en la propiedad Name form2, para llamarlo desde otro formulario pondremos:
Form2.Show

Si no ponemos ningn argumento se asume que el formulario aparece en modo no modal, es decir, se permitir que se active cualquier otro formulario sin cerrar el formulario 2. La otra modalidad que existe es modal, lo que significa que no se permite el enfoque hacia ningn otro formulario hasta que no se cierre el actual. Este ltimo modo puede servir para cuadros de dilogo que soliciten ciertos parmetros para que la aplicacin siga funcionando: una contrasea. Los argumentos del mtodo Show son:

0 1 Ejemplo:

vbModeless vbModal

No modal Modal

Form2.Show vbModal

Sentencia Load
La sentencia Load seguida del nombre de un formulario provoca que se cargue el formulario en memoria pero sin visualizarse, ya que la propiedad Visible se coloca a False. Ejemplo
Load Form2

Realmente el mtodo Show realiza la carga del formulario en memoria, si no estaba cargado antes, y coloca la propiedad Visible del formulario a True. Durante este proceso se provoca la activacin de los eventos Load y Activate del formulario en ese orden. En dichos eventos se puede colocar el cdigo necesario que haga que el formulario se inicie siempre con los valores que queramos. Si el formulario ya estaba cargado en memoria, mediante una sentencia Load o porque se haya ocultado con el mtodo Hide, al llamarlo con el mtodo Show, nicamente se realizar la modificacin de la propiedad Visible a True, y no se volver a efectuar el proceso de carga del formulario a memoria.Por tanto el formulario aparecer con los mismos datos que tena cuando se ocult. Ahora el nico evento que se activar es el Activate que se actuva cada vez que un formulario recibe el enfoque o pasa a ser el formulario activo.

Sentencia Unload
Nos permite descargar un formulario de la memoria. Se introduce junto al nombre del formulario que vayamos a descargar:
Unload Form2

Si nos encontramos dentro del mismo formulario para descargarlo no hace falta colocar el nombre sino nicamente:

Unload me

En una aplicacin con varios formularios debemos usar esta sentencia para los mtodos que terminamos de utilizar, de esta forma liberaremos espacio en memoria para que los otros formularios puedan aprovecharla mejor. La sentencia unload provoca la activacin de los eventos: Deactivate: Al contrario que el evento Activate, este se activa cada vez que un formulario pierde el enfoque. Tambin se activa este evento al utilizar el mtodo Hide. Unload: Este evento recibe el parmetro Cancel, y modificando su valor podemos hacer que se suspenda (cancele) el proceso de descarga de un formulario. Mediante 2 lneas de cdigo podemos hacer una pregunta al usuario cada vez que se cierra un formulario para que nos confirme la operacin:

Este cdigo provocar que cada vez que se cierre el formulario de cualquier forma, (no slo mediante la sentencia Unload sino tambien haciendo click sobre la "x", el men de control o con ALT + F4) aparezca un mensaje preguntndonos si realmente queremos salir:

Este tipo de mensajes los veremos en el captulo siguiente dedicado a los cuadros de dilogo. Query_Unload: Este evento se produce realmente antes que el evento Unload, aunque por las posibilidades que tiene quera dejarlo para el final.

En este evento adems de recoger el parmetro Cancel, tambin nos proporciona el parmetro UnloadMode que segn el valor que tenga podremos saber desde donde se produce la posible descarga del formulario. Los valores que puede tener son los siguientes: 0 - vbFormControlMenu: Significa que el cierre del formulario se ha producido: Pulsando sobre la "x" Mediante la opcin cerrar del Men de Control. Pulsando ALT + F4. Cerrando el formulario desde la Barra de Tareas. 1 - vbFormCode: Indica que se ha cerrado el formulario utilizando la sentencia Unload. 2 - vbAppWindows: Se cierra el formulario porque se apaga el sistema desde Inicio / Apagar Sistema. 3 - vbAppTaskManager: Desde el administrador de tareas de windows (CTRL + ALT + DEL) se cierra la aplicacin que contiene el formulario 4 - vbFormMDIForm: Se produce cuando se cierra un formulario hijo porque se est cerrando el formulario MDI que lo contiene. Mediante unas lneas de cdigo vamos a probar las posibilidades de este evento. Segn desde donde se cierre el formulario del que consta la aplicacin aparecer un mensaje distinto pidindonos confirmacin en el proceso de descarga. Nota: Para el correcto funcionamiento de este ejemplo se debe compilar la aplicacin mediante File / Make EXE File... y ejecutar la aplicacin desde fuera del entorno de trabajo de VB.Esto es as para que se pueda cerrar la aplicacin apagando el sistema y desde el administardor de tareas. El cdigo asociado al evento Query_Unload es el siguiente:

COMUNICACION ENTRE FORMULARIOS


Desde un formulario se puede tener acceso a los controles y propiedades de otro formulario. En lugar de realizar el paso de parmetros cuando se llama a otro formulario que queremos que aparezca con unos determinados valores iniciales, lo que se hace es acceder a los controles del otro formulario y despus mostrarlo mediante el mtodo Show. Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:

Formulario!Control.Propiedad = valor Se debe colocar una admiracin "!" entre el formulario y el control y un punto entre el control y la propiedad Ejemplo:
Form2!Label1.Caption = "Nmero de Clientes"

Al acceder a las propiedades de otro formulario automticamente se carga ste en memoria, si no lo estaba ya antes. Una vez que hayamos modificado sus propiedades los visualizaremos con el mtodo Show. No se puede acceder a las variables declaradas en otro formulario, de modo que si queremos trabajar con variables generales, las cuales sean accesibles desde cualquier formulario de la aplicacin, tendremos que declararlas como Pblicas desde un mdulo de cdigo. Para insertar un mdulo en nuestro proyecto de Visual Basic tendremos que marcar en Insert / Module o pulsar sobre el botn de la barra de herramientas. Nos aparecer una ventana en la que nicamente podremos colocar las variables y procedimientos o funciones que queramos que sean pblicas para toda la aplicacin. En el siguiente ejemplo se declara la variable Gen_var de tipo Integer que ser accesible desde cualquier formulario de la aplicacin:

Ahora la ventana de proyecto tiene una lnea ms con un icono distinto indicando que se trata de un mdulo de cdigo: