canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  142

Manual de Visual Basic: Aplicaciones MDI

INDICE MANUAL VISUAL BASIC II

6.1.- ¿QUÉ ES MDI?

Visual Basic permite crear aplicaciones empleando una interfaz de múltiples documentos (MDI - Multiple Document Interface), o dicho en términos de Visual Basic, múltiples formularios. En una aplicación MDI, se pueden abrir varias ventanas hijas. Cada una de estas ventanas hijas (formularios) son iguales entre sí. En una aplicación MDI pueden haber varias ventanas hijas, pero solo una ventana padre por aplicación. El formulario padre actúa como contenedor de los formulario hijo. Muchos procesadores de textos bajo Windows son buenos ejemplos de aplicaciones MDI.

Para crear una aplicación MDI se empezará a crear un nuevo proyecto y, se accede a Insert/MDI Form. El nuevo formulario será el formulario padre. Para que un formulario sea un formulario hijo, se deberá cambiar su propiedad MDIChild y establecerla a True.

Cuando se visualizan varios formulario hijos, todos comparten el mismo código, pero cada uno de ellos guarda sus propios datos y reconoce sus propios sucesos. Según ésto, no se podrá utilizar el identificador del formulario para referirse a los controles o a sus propiedades, aunque sí se podrá utilizar la palabra clave Me.

6.2.- COMPORTAMIENTO DE MENÚS Y BARRAS DE HERRAMIENTAS

 

Los únicos controles que se pueden incluir en un formulario padre son aquellos que tengan la propiedad Align y, dentro de éstos controles se podrán colocar otros controles. De esta forma se crean las barras de herramientas.

Los menús de cada formulario hijo, son visualizados en el formulario padre. Cada vez que se activa un formulario hijo, su menú sustituye al menú que se esté visualizando en el formulario padre. Ahora bien, si no hay un formulario hijo cargado, o si dicho formulario no tiene menú, entonces se visualiza el del padre, si lo tiene.

Es aconsejable que el formulario padre tenga un menú que permita abrir o crear un nuevo formulario hijo.

6.3.- EVENTO QUERYUNLOAD

 

Cuando el usuario ejecuta la orden Cerrar del menú de control del formulario padre, Visual Basic intenta descargar dicho formulario. Esto hace que se dé el suceso QueryUnload primero para el formulario padre y luego para cada uno de los hijos.

Cuando el usuario ejecuta la orden Cerrar del menú de control del formulario hijo también se da el suceso QueryUnload pero solo para este formulario.

La sentencia Unload permite descargar un formulario o un control de la memoria, pero antes de que el formulario sea descargado, se da el suceso QueryUnload, seguido del suceso Unload. El suceso QueryUnload para un formulario MDI va seguido del suceso QueryUnload para cada uno de los formularios hijo.

EJEMPLO:

Vamos a construir una aplicación que permita crear varios formularios hijo. Para ello, se necesitará crear un nuevo proyecto con un formulario MDI y, un formulario hijo, al que se le haya establecido su propiedad Caption a Formulario Hijo y su propiedad Name a frmHijo. Al formulario padre se le añadirá un menú Archivo con los comandos Nuevo y Salir. Se añadirá el menú Ventana con la propiedad Window List activada y, con las opciones Cascada, Mosaico y Organizar iconos. También se le añadirá un control 3D panel, seleccionando Tools/Custom Controls. A dicho control se le modificará las propiedades Align con 2 - Align Bottom, BevelInner con 1 - Inset, BevelWidth con 2 y, BordeWidth con 2. Dentro de este control se añadirán dos etiquetas: lblTexto y lblContador.

En un nuevo módulo:

Public Contador As Integer

En el formulario padre:

Private Sub mnuArchivoNuevo_Click()

Dim X As New frmHijo

Contador = Contador + 1

X.Show

End Sub

Private Sub mnuArchivoSalir_Click()

End

End Sub

Private Sub mnuVentanaCascada_Click()

MDIForm1.Arrange 0

End Sub

Private Sub mnuVentanaMosaico_Click()

MDIFomr1.Arrange 1

End Sub

Private Sub mnuVentanaOrganizar_Click()

MDIFomr1.Arrange 3

End Sub

Private Sub MDIForm_Initialize()

Contador = 0

lblContador = Str(Contador)

End Sub

En el formulario hijo:

Private Sub Form_Initialize()

Me.Caption = Me.Caption & " #" & Str(Contador)

MDIForm1.lblContador = Str(Contador)

End Sub

Private Sub Form_Unload(Cancel As Integer)

‘Si el valor de Cancel es True, el formulario asociado no se descarga.

‘En otro caso, se van cerrando primero cada hijo y, por último el padre.

Contador = Contador - 1

MDIForm1.lblContador = Str(Contador)

End Sub

EJERCICIOS:

  1. Modificar la aplicación "Editor de Texto" para permitir trabajar con más de un documento. El formulario padre deberá tener un menú Archivo con las opciones de Nuevo, Cerrar, Abrir, Guardar, Guardar Como, Salir. (Ya se verá cómo Abrir y Guardar archivos).
  2. Modificar el ejercicio anterior para que la barra de estado se muestre en la parte superior y aparezcan los iconos de Cortar, Copiar, Pegar del directorio ...\toolbar3\open-up.bmp, ...\toolbar3\save-up.bmp, ...\toolbar3\cut-up.bmp, ...\toolbar3\copy-up.bmp, ...\toolbar3\pste-up.bmp, ...\toolbar3\open-mds.bmp, ...\toolbar3\save-mds.bmp, ...\toolbar3\cut-mds.bmp, ...\toolbar3\copy-mds.bmp, ...\toolbar3\pste-mds.bmp,
© Copyright 2008 canalvisualbasic.net Ontecnia. Todos los derechos reservados
Ontecnia
Otros sitios web de Ontecnia