Controles Basicos dvidual basice Visual Basic

26
CONTROLES BASICOS DE VISUAL BASIC En este capítulo conoceremos como se trabaja en un entorno visual como es el de VB 4.0 y las diferencias que hay entre la programación lineal de MS DOS. Vamos a ver los siguientes puntos: Introducción al uso de controles Control TextBox. Control Label Control CommandButton Control OptionButton Realizacíon de una pequeña aplicación de ejemplo Introducción al uso de controles Una vez que ya hemos visto algunas de las sentencias básicas: declaración de variables, sentencias de selección, que son muy parecidos a las sentencias utilizadas en MSDOS. Vamos a empezar a programar en windows y veremos en que se diferencia de la programación clásica en MS DOS, para vamos a introducir el uso de los controles. Pero ¿Que son los controles? Realmente son objetos que disponen de sus propias propiedades y métodos, y cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. Bueno, este intento de definición puede haber quedado bien, pero para que lo tengáis más claro, tener en cuenta que en cualquier aplicación con la que trabajamos estamos rodeados de controles. Quien

description

visual basic

Transcript of Controles Basicos dvidual basice Visual Basic

CONTROLES BASICOS DE VISUAL BASICEn este captulo conoceremos como se trabaja en un entorno visual como es el de VB 4.0 y las diferencias que hay entre la programacin lineal de MS DOS.Vamos a ver los siguientes puntos:Introduccin al uso de controles

Control TextBox.

Control Label

Control CommandButton

Control OptionButton

Realizacon de una pequea aplicacin de ejemplo

Introduccin al uso de controlesUna vez que ya hemos visto algunas de las sentencias bsicas: declaracin de variables, sentencias de seleccin, que son muy parecidos a las sentencias utilizadas en MSDOS. Vamos a empezar a programar en windows y veremos en que se diferencia de la programacin clsica en MS DOS, para vamos a introducir el uso de los controles.Pero Que son los controles?Realmente son objetos que disponen de sus propias propiedades y mtodos, y cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. Bueno, este intento de definicin puede haber quedado bien, pero para que lo tengis ms claro, tener en cuenta que en cualquier aplicacin con la que trabajamos estamos rodeados de controles. Quien no ha visto en multitud de programas los botones ACEPTAR y CANCELAR, un cuadro para introducir texto, una lista con datos, etc.. Pues todos ellos son controles y no tendremos que preocuparnos por crearlos para nuestras aplicaciones sino que ya vienen con el paquete de VB, lo nico que tendremos que hacer es modificar sus propiedades: tamao, color, etc.. para incorporarlos en nuestras aplicaciones y asociarles el cdigo necesario para que se comporten como esperamos al ejecutar la aplicacin.Antes de empezar a conocer los controles bsicos veamos cuales son sus caractersticas generales:Propiedades:Todos los controles disponen de una serie de propiedades las cuales podemos cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el color, el tipo de letra, el nombre, el texto, etc...

Metodos:Son procedimientos asociados a los controles, es decir, rutinas ya establecidas que podemos invocar desde nuestras aplicaciones para que se realice alguna operacin sobre el control. Por ejemplo el control ListView ( la lista de archivos que aparece en el explorador de windows) dispone del metodo order que te ordena los datos aparecidos en la lista.

Eventos:Son acciones que pueden ser motivadas por el propio usuario o por mismo sistema operactivo. Ejemplos pueden ser el movimiento del raton o hacer click sobre su botn.En Visual Basic digamos que se utiliza la programacin orientada a eventos, lo cual es una de las diferencias ms importantes respecto a la programacin lineal de MS DOS. No necesitamos detectar cuando se ha producido un evento determinado, Windows lo detecta automticamente. Los eventos ya estan definidos, son bastantes y cada control cuenta con los suyos propios, aunque son muy parecidos. Lo nico que tendremos que hacer es asociar el cdigo necesario al evento que necesitemos tratar.

Para mostrar la ventana donde aparecen los controles que Visual Basic carga por defecto nada ms arrancar la aplicacin tendremos que marcar enViewdel men principal (versin inglesa) y activar la opcinToolbox.Obtendremos una ventana como esta en la pantalla:Realmente existen muchos ms controles, aunque estos son los ms utilizados y por eso aparecen por defecto. Para tener acceso a los dems controles tanto de Visual Basic como los controles que incorporan otras aplicaciones marcaremos enTools/Custom Controlsdel men principal.Moviendo el ratn por encima de cualquier control aparecer una pista indicndonos el control de que se trata.Para que esta ventana aparezca siempre en primer plano aunque no sea la ventana activa marcaremos con el boton derecho del ratn en cualquier lugar de la ventana y activaremos la opcinAlways On Topdel men contextual.CONTROLES BASICOSTextBox

Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones.No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamao que queramos en nuestro formulario.PROPIEDADESLas propiedades de las que dispone el control son las siguientes:(para obtener el cuadro de propiedades, seleccionar el control y pulsarF4o pulsar con el boton derecho para obtener el men contextual y marcarPropierties)Text:Aqui indicamos el texto que aparecer en el control. Podemos asignarle cualquier texto en tiempo de diseo o ejecucin. Tambin podemos tomar el texto que haya introducido el usuario para tratarlo durante la ejecucin.Name:Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso Text1 y es el nombre con el que se conocer el control cuando lo utilicemos en el codigo. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la funcion que tiene el control en la aplicacion para que el codigo quede ms claro. Ejemplo, si en el textbox vamos a introducir la direccin de una persona podemos asignale a esta propiedad el valor Direccion.MultiLine:Permite que introduzcamos varias lineas de texto en el control en lugar de slo una.Alignment:Alineacion que tendr el texto dentro del control: izquierda, centro o derecha. Para que funcione la propiedad MultiLine debe estar con el valortrue.Locked:Si esta con valortruebloquea el control, es decir, el usuario no puede introducir ni modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario pueda modificarlos por error.Otras propiedades que son comunes a la mayoria de los controles:Backcolor:color de fondo.Forecolor:color de letra.Font:tipo y tamao de letra.METODOSRecordemos que por mtodos se entienten los procedimientos o funciones asociados a un control, los cuales nos permiten realizar ciertas operaciones tiles sobre dicho control: Ej. ordenar sus elementos, buscar un dato, etc..Pues bien, los controles bsicos que vamos a ver en este captulo nicamente contienen mtodos avanzados que no vamos a analizar por ahora, ya que son mtodos que no se suelen utilizar. Ms adelante cuando veamos otros tipos de controles estudiaremos cuales son los mtodos que nos podrn servir. Si alguien est interesado en conocer todas las caractersticas de los controles puede hacerlo mirando en la ayuda que proporciona VB, haciendo click sobre cualquier control de la caja de herramientas y pulsando a continuacin F1 obtendr ayuda referente a ese control donde aparecern todas sus propiedades, metodos y eventos.EVENTOSLos eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento.MouseMove: al mover el raton por encima del control.Mousedown:al pulsar cualquier boton del ratonChange:al cambiar el contenido del controlClick:al hacer click con el botn izquierdo del ratn sobre el controlDoubleclick:al hacer doble click con el con el botn izquierdo del ratn sobre el controlGetfocus:este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el control en tiempo de ejecucin para introducir datos en l o realizar alguna operacin.Lostfocus:Es el contrario del anterior evento, se activa cuando el control pierde el enfoque, es decir, se pasa a otro control para seguir introduciendo datos.EJEMPLOVamos a probar el uso del controlTextBoxmediante un pequeo ejemplo en el que teniendo un nico control de este tipo en un formulario, lo programaremos de forma que al pasar el ratn sobre el control (eventomousemove) aparecer en el formulario el texto que contenga.

Observamos que al situar el control en el formulario aparece por defecto el textoText1. Para que no aparezca ese texto al ejecutar la aplicacin, debemos cambiar la propiedadTextpulsandoF4y colocar el texto que queramos o no colocar nada.Lo que queremos hacer es que cada vez que movamos el raton por el control aparezca su contenido en el formulario. Entonces lo que habr que hacer abrir la ventana de cdigo, seleccionando el control y pulsandoF7,o con el botn derecho del ratn y la opcinView codedel men contextual. Este proceso nos llevar al cuadro de la imagen siguiente.

Lo que tendremos que hacer es seleccionar el evento que necesitemos de la seccinProc, en nuestro caso mousemove y a continuacin teclear el codigo correspondiente: La instruccinprintvisualiza un texto en el formulario y si le ponemostext1.textle decimos que nos muestre la propiedadTextdel controlText1que ese ser el nombre que tendr el control por defecto si no lo hemos cambiado en la propiedad name.Al ejecutar esta pequea aplicacin pulsandoF5observaremos como aparece en el formulario lo que hayamos tecleado en el control cada vez que movemos el raton sobre elTextbox.Podemos modificar el programa para que responda a cualquier otro evento sin ms que seleccionarlo en la seccinProce introduciendo el codigo que sea necesario.Label

Este control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la visualizacin de datos en el mismo, no permitiendo la introduccin de datos por parte del usuario.La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el tamao que queramos y asignarle un texto en tiempo de diseo o de ejecucin esta vez sin utilizar la propiedad text puesto que no la incorpora, sino utilizando la propiedad caption.Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad de los dems controles que tengamos en la aplicacin o para indicarnos acciones que podemos realizar. En el ejemplo anterior donde apareca un textbox en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en un control label:

PROPIEDADESCaption:Es el texto que contendr el control.Alignment:Alineacin del texto contenido en el control, no necesita que est activada ninguna otra propiedad.BorderStyle: Si queremos que aparezca un borde alrededor del control activaremos esta propiedad.Para este control no se suelen utilizar los eventos ya que su contenido suele cambiar poco a lo largo de la ejecucin de la aplicacin. De todas formas los eventos son casi los mismos del control textbox excepto que no dispone de los eventosGetFocusyLostFocusya que a este control no se le puede dar el enfoque.En la parte final de este capitulo veremos un ejemplo donde se muestra el funcionamiento de todos los controles que vamos a ir viendo.Por ahora a ver si conseguis que ahora el mensaje no aparezca en el formulario sino en un segundo label situado en el formulario, dejando un control label que muestre el mensaje aclaratorio que hemos visto antes.CommandButton

Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer click sobre l nos permite realizar alguna operacin concreta, normalmente Aceptar o Cancelar. Aunque segn el cdigo que le asociemos podremos realizar las operaciones que queramos.En el ejemplo anterior podemos aadir un control de este tipo para salir de la aplicacin sin tener pulsar sobre la equis de la esquina superior derecha.

Pero slo con introducir un control de este tipo con el texto salir que se introduce a traves de la propiedad caption no basta. Habr que asociarle un cdigo que nos permita salir de la aplicacin en el evento adecuado. Y el evento por excelencia de este control es click. As pues accederemos al cdigo del control y la sentencia nos permitir salir de la aplicacin es End, simplemente tecleamos esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicacin al pulsar sobre dicho botn.PROPIEDADESCaption:Aqui pondremos el letrero que queremos que apaezca en el botn: aceptar, cancelar, salir, etc...Enabled:Esta es una nueva propiedad, cuando su valor es true el botn funciona normalmente, cuando su valor es false el boton se encuentra desactivado, no responde a los eventos producidos sobre l y el texto aparece en un gris claro advirtiendonos de su estado. Podemos utilizar esta propiedad para activar o desactivar un boton dependiendo del estado de otros controles. Por ejemplo, en un boton Aceptar, no activarlo hasta que se haya introducido una cantidad en un control textbox, ya que ese botn nos calcular el IVA de la cantidad.EVENTOSClick:Es el evento tipico de este control y el que ms se utiliza.MouseMove: Como sabemos detecta el movimiento del raton sobre el control. Puede servir para que aparezca un mensaje en un control Label que nos aporte informacin sobre la utilidad del control ampliando el texto que hayamos colocado como caption del commandbutton.OptionButton

Este control nos permite elegir una opcin entre varias de las que se nos plantean. Cada opcin ser un control optionbutton diferente.Facilita la introduccin de datos por parte del usuario:

De todas las opciones que se nos ofrece, en este caso los 4 colores, slo podremos activar una. Si activamos cualquier otra opcin, se desactivar automticamente la ltima que tenamos activada.El marco que est alrededor de los 4 controles optionbutton se trata del controlFrame, es opcional, aunque es conviente colocarlo siempre que hagamos uso de las opciones. No slo por motivos de presentacin sino porque de esta manera podremos establecer grupos de controles optionbutton independientes en los que en cada grupo slo pueda haber una opcion activada a la vez. Tambin, al mover el marco se movern los controles incluidos en l facilitndonos las modificaciones.Para que los controlesOptionbuttonqueden englobados dentro de un controlFrame, primero tendremos que colocar el controlFrameen el formulario con el tamao adecuado y despues ir colocando los controlesOptionbuttondentro delFrame.Del control Frame la nica propiedad que nos interesar es caption, que es el texto que aparecer en el encabezado, en el ejemplo anterior: colores.PROPIEDADES DE OPTIONBUTTONCaption:El texto que aparecer al lado del control: Rojo, verde, etc...Value:Es el valor que tendr el control:Truesi se encuentra activado yFalsesi no lo est. Para comprobar que opcion ha activado el usuario comprobaremos el estado de esta propiedad.Alignment:Alineacin del texto respecto al control:Left Justify: el control aparece a la izquierda del texto. Es el ejemplo anterior.Right Justify:el control aparece a la derecha del texto.Los eventos del control son los mismos que en anteriores controles, aunque no se suele asociar cdigo a los eventos de este tipo de controles, sino nicamente conocer el valor que tienen:trueofalse.APLICACION DE EJEMPLOPara practicar con los controles que hemos visto vamos a realizar una pequea aplicacin que consistir en realizar con 2 nmeros que introduzcamos, una operacin que seleccionemos y mostrar el resultado.El formulario donde estarn todos los controles es el siguiente:

La propiedadCaptionde cada uno de los controles es la que se muestra en el formulario.He modificado la propiedadNamede cada control para que al utilizarlos desde el codigo sepamos cual es el control con el que trabajamos:Los controlesTextBoxtienen los nombres:Num1,Num2yResul.

Los controlesOptionbuttontienen cada uno de ellos el mismo nombre que su caption

Los controlesCommandButtontienen los nombres:Calcular,LimpiarySalir.

A los controlesLabely alFrameno have falta cambiarles el nombre.

Lo que habr que hacer ahora es asociar codigo a cada uno de los botones que es de donde se van a realizar las operaciones:Para el botnCalcularque es el que nos mostrar el resultado segn la operacin seleccionada, he utilizado la instruccinIf Then Elseque vimos en el captulo anterior:

El botnLimpiar Datosnos va a servir para borrar de una forma rpida los datos introducidos por el usuario y el resultado preparando los controles para introducir nuevos datos. El cdigo que tendremos que introducir es muy simple:

El botnSalirnicamente contendr la sentenciaEnd.

FORMULARIOSLos 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.PropiedadesLas 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 formularioBackcolor: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 - Normal1 - Minimizado.2 - Maximizado.MinButton y MaxButton:Son dos propiedades que admiten nicamente los valoresTrueoFalse. 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=TrueMaxButton=TrueMinButton=FalseMaxButton=TrueMinButton=TrueMaxButton=FalseMinButton=FalseMaxButton=False

ShowInTaskbar:Mediante esta propiedad podremos controlar que determinado formulario aparezca o no en labarra de tareasde 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 aFalse.Icon:Nos permite modificar el icono que aparece a la izquierda de labarra del ttulode cualquier formulario, que es donde aparece elmen de control,para personalizarlo en nuestra aplicacinEl icono que aparece por defecto en todos los formularios se puede cambiar por otro ms simptico:

ControlBox:Controla la aparicin delmen de control. Esta propiedad por defecto est activada, aunque si la ponemos aFalse, 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 colocarControlBoxaFalse, colocamosMinButtonyMaxButtonaFalsey dejamos vaca la propiedadCaption, es decir sin nada en el ttulo, nos aparecer un formulario sinbarra 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 propiedadesMinButton,MaxButtonyShowInTaskbarque 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 BorderStyleUtilidadMinButtonMaxButtonShowInTaskbarMuestra

0- NoneNo aparecen bordes ni barra de titulo. No podemos modificar su tamao de ninguna forma. Sirve para pantallas de presentacin al principio de nuestra aplicacinFalseFalseFalse

1 - Fixed SingleNo se puede cambiar su tamao.Ni siquiera se puede maximizar haciendo doble click sobre la barra del ttulo, algo que s se puede hacer desactivando los botonesMinButtonyMaxButtonen un formulario normalFalseFalseTrue

2 - Sizable (aparece por defecto)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.TrueTrueTrue

3 - Fixed DialogNo se puede cambiar su tamao y no aparece en la barra de tareasFalseFalseFalse

4 - Fixed ToolWindowAparece con la barra de titulo ms pequea, es el que utiliza VB para mostrar la caja de herramientas. No aparece el icono del men de control ni aparece en la barra de tareas.FalseFalseFalse

5 - Sizable ToolWindowIgual que el anterior pero s permite modificar su tamao actuando sobre el borde.FalseFalseFalse

UTILIZACION DE MULTIPLES FORMULARIOSPara utilizar varios formularios en nuestra aplicacin tendremos que aadir cada uno de ellos mediante la opcin de menInsert / Formo pulsando sobre el botn.Mtodo ShowPara llamar a un formulario desde el cdigo utilizaremos el mtodoShow. Si el formulario 2 tiene en la propiedadNameform2, para llamarlo desde otro formulario pondremos:Form2.ShowSi no ponemos ningn argumento se asume que el formulario aparece en modono modal, es decir, se permitir que se active cualquier otro formulario sin cerrar el formulario 2. La otra modalidad que existe esmodal, 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 mtodoShowson:0vbModelessNo modal

1vbModalModal

Ejemplo:Form2.Show vbModalSentencia LoadLa sentenciaLoadseguida del nombre de un formulario provoca que se cargue el formulario en memoria pero sin visualizarse, ya que la propiedadVisiblese coloca aFalse.EjemploLoad Form2Realmente el mtodoShowrealiza la carga del formulario en memoria, si no estaba cargado antes, y coloca la propiedadVisibledel formulario aTrue. Durante este proceso se provoca la activacin de los eventosLoadyActivatedel 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 sentenciaLoado porque se haya ocultado con el mtodoHide, al llamarlo con el mtodoShow, nicamente se realizar la modificacin de la propiedadVisibleaTrue, 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 elActivateque se actuva cada vez que un formulario recibe el enfoque o pasa a ser el formulario activo.Sentencia UnloadNos permite descargar un formulario de la memoria. Se introduce junto al nombre del formulario que vayamos a descargar:Unload Form2Si nos encontramos dentro del mismo formulario para descargarlo no hace falta colocar el nombre sino nicamente:Unload meEn 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 mtodoHide.

Unload: Este evento recibe el parmetroCancel, 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 sentenciaUnloadsino tambien haciendo click sobre la "x", elmen de controlo conALT+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 eventoUnload, aunque por las posibilidades que tiene quera dejarlo para el final.

En este evento adems de recoger el parmetroCancel, tambin nos proporciona el parmetroUnloadModeque 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 delMen de Control.

PulsandoALT + F4.

Cerrando el formulario desde laBarra de Tareas.

1 - vbFormCode:Indica que se ha cerrado el formulario utilizando la sentenciaUnload.2 - vbAppWindows:Se cierra el formulario porque se apaga el sistema desdeInicio / Apagar Sistema.3 - vbAppTaskManager:Desde eladministrador de tareasde windows (CTRL + ALT + DEL) se cierra la aplicacin que contiene el formulario4 - vbFormMDIForm:Se produce cuando se cierra un formulario hijo porque se est cerrando el formularioMDIque 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 medianteFile / 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 eladministardor de tareas.El cdigo asociado al eventoQuery_Unloades el siguiente:

COMUNICACION ENTRE FORMULARIOSDesde 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 mtodoShow.Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:Formulario!Control.Propiedad = valorSe debe colocar una admiracin"!"entre el formulario y el control y un punto entre el control y la propiedadEjemplo: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 mtodoShow.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 comoPblicasdesde unmdulo de cdigo.Para insertar unmduloen nuestro proyecto de Visual Basic tendremos que marcar enInsert / Moduleo pulsar sobre el botnde labarra 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 variableGen_varde tipoIntegerque ser accesible desde cualquier formulario de la aplicacin:

Ahora la ventana deproyectotiene una lnea ms con un icono distinto indicando que se trata de unmdulo de cdigo: