Sunteți pe pagina 1din 10

Visual .

NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

UNIDAD 17. FORMULARIOS MULTIPLES SDI Y MDI. Una aplicacin de tipo o estilo SDI (Single Document Interface), Interfaz de Documento Sencillo, esta compuesta fundamentalmente de un nico formulario, donde se realizan todas las operaciones. Como aplicaciones Bloc Notas o Calculadora de Windows. Sin embargo un programa puede contener ms de un formulario. De hecho, habitualmente los programas contienen mltiples formularios. En este caso los formularios se abren en ventanas independientes. Un programa siempre debe tener un formulario principal, que es el que aparece al arrancar el programa. Se puede indicar cul debe ser el formulario principal en el men My Project/aplicacin/formulario de inicio. Por defecto, el programa considera como formulario principal el primero que se haya creado. El resto de formularios que se incluyan en el programa sern cargados en su momento, a lo largo de la ejecucin del programa. Para aadir un nuevo formulario seleccionaremos Proyecto/Agregar Windows Forms

o desde el explorador de soluciones sobre el nombre proyecto pulsar el botn secundario

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Para poder interactuar sobre los distintos formularios utilizaremos los siguientes mtodos: Show: muestra un formulario, (Form.show()) Hide: oculta el formulario pero lo deja cargado. (Form.Hide()) En ambos casos se mantienen los valores de las variables. Recuerda, si queremos hacer al formulario sobre el que estamos pondremos me. Al utilizar el mtodo Show las ventanas actan de forma independiente, sin embargo si se quiere ejercer un control sobre el orden de proceso de los formularios deberemos utilizar la forma modal. Los formularios modales aparecen en la parte superior de un formulario principal, y el usuario no puede acceder a ste hasta que se haya cerrado el formulario modal. Para mostrar un formulario modal utilizaremos el mtodo ShowDialog(). Si queremos hacer referencia a un objeto que se encuentra en otro formulario pondremos delante el nombre del formulario. Por ejemplo, estando en el formulario1 si queremos hacer referencia a un objeto del formulario2 pondremos: Form2.Objeto Como cerrar los formularios y finalizar la aplicacin. Una forma de cerrar la aplicacin es utilizando el funcin End. Podemos cerrar mediante el mtodo Application.Exit para que la aplicacin finalice. Sin embargo, tambin puede terminar una aplicacin cerrando el formulario principal. Por ejemplo, si tenemos un formulario inicial Form1, y desde aqu se llama al formulario Form2 mediante Show(). Siempre que se cierre el formulario inicial (Form1), los dems formularios desaparecern y finalizar la aplicacin. El mtodo para cerrar un formulario es Close(): form.close() 1.ejercicio Crea el siguiente proyecto con los siguientes formularios:

Despus de seleccionar un nombre en el formulario principal, al pulsar el botn Saludar, mostrar el saludo desde el formulario Saludar y ocultar el principal.

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Desde el formulario Saludar al pulsar el botn Formulario Principal se mostrar el formulario principal y se ocultar el formulario Saludar. Prueba: 1. Mostrando los dos formularios cuando se pulsa Saludar de forma no modal. 2. Mostrando los dos formularios cuando se pulsa Saludar de forma modal. 2.ejercicio Crea un proyecto que contenga los siguientes formularios:

Tanto si se pulsa desde el men o desde el botn se visualizar el formulario correspondiente.

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

FORMULARIOS MULTIPLES MDI El estndar MDI permite que los programas trabajen con mltiples formularios contenidos dentro de un formulario primario o principal. Como aplicaciones Word, Excel.. de Windows Las caractersticas del formulario MDI principal son: 1. Si se mueve el formulario principal (contenedor) los formularios que estn dentro (secundarios) tambin se movern. 2. Si se cierra el formulario principal se cierran todos los formularios abiertos dentro de l. Para indicar que un formulario MDI es primario (contenedor) pondremos la propiedad del formulario IsMdiCointaner = True. Las caractersticas de formularios MDI secundarios son: 1. Cada formulario secundario aparece dentro de los lmites del formulario primario. No puede ser movido fuera de los lmites. 2. Cuando se minimiza una ventana secundaria, su icono aparecer en la ventana primaria. 3. Cuando se maximiza un formulario secundario, rellena todo el rea interna del formulario primario y adems todos los secundarios tambin se maximizan. Para crear un formulario MDI secundario hay que establecer la propiedad Mdiparent = nombre_formulario_MDIprimario. Automticamente la propiedad IsMdiChild se pondr a true. Por ejemplo: Si tenemos dos formularios form1 y form2 y consideramos que el form1 es el formulario contenedor (principal) y form2 es el formulario hijo(secundario) indicaremos: En el formulario form1: IsMdiCointaner = True. My.Forms.Form2.MdiParent = Me Al poner my.forms obtenemos todos los formularios que contiene el proyecto. En nuestro caso

Para cerrar una ventana activa utilizaremos : ActiveMdiChild.Close() Para cerrar una ventana : Me.Close()

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Gestin de las ventanas secundarias Como se ha mencionado antes se puede tener varias ventanas abiertas en el formulario principal. Para organizar estas ventanas utilizaremos el mtodo LayoutMdi desde el formulario principal. Este mtodo acepta uno de estos parmetros:

Ejemplo: Me.LayoutMdi(MdiLayout.TileVertical) si queremos organizar las ventanas de forma vertical. Ejercicio 3 Crea el siguiente que contiene formulario MDI. Contendr un formulario principal(contenedor) y dos formularios secundarios. El formulario principal ser:

Los formularios secundarios son:

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Al comienzo se cargarn automaticamente los dos formularios. La opcin archivo me permite abrir el formulario 1 y el formulario 2. La opcin ventanas me permite organizar estos dos formularios de forma diferente. (cascada, horizontal y vertical)

Ejercicio 4 Crea el siguiente proyecto de forma que tenga dos formularios un formulario contenedor y un formulario secundario. Al formulario contenedor le llamaremos: MDIpadre Al formulario secundario: HIJO

El formulario contenedor tendr la siguiente forma:

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Un formulario hijo:

Formulario padre: MDIpadre Dentro del men archivo: La opcin Nuevo permitir crear un nuevo formulario que ser igual al formulario hijo creado. Solamente a medida que se vaya creando nuevos formularios se cambiar el ttulo del formulario. Para ello se deber introducir el siguiente cdigo: Dim ventanahijo As New Form2 ; definimos una variable de tipo form2 (formulario
hijo)

ventanahijo.MdiParent = Me ; indicamos quien es el formulario padre ventanahijo.Show() ; decimos que se muestre el nuevo formulario DIM (nombre del nuevo formulario) as new (NOMBRE del formulario del que queremos que coja el formato)
Public Class mdipadre Dim nombre As Integer = 1 Private Sub NuevoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NuevoToolStripMenuItem.Click Dim nuevohijo As New hijo nuevohijo.MdiParent = Me nuevohijo.Show() nombre = nombre + 1 nuevohijo.Text = "hijo " & nombre

Debers cambiar el ttulo de la ventana a medida que vamos creando nuevos formularios. La opcin Cerrar permitir cerrar el formulario que este activo en ese momento.
Private Sub CerrarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarToolStripMenuItem.Click ActiveMdiChild.Close()

La opcin Salir mostrar un mensaje indicando que se va a cerrar y cerrar el proyecto.

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click MsgBox("me voy a cerrar", MsgBoxStyle.OkOnly, "MDI") End End Sub

Para ello utilizaremos el evento FormClosing Dentro del men ventanas: Las diferentes maneras de organizar las ventanas. Formulario hijo: Al pulsar el botn Seleccionar imagen me permitir seleccionar una imagen que se encuentra en cualquier lugar del ordenador y a continuacin visualizarlo en el formulario. (que aparezca la ventana) Para ello se deber utilizar el control OpenFileDialog donde las propiedades principales son: Propiedades Propiedad Title InitialDirectory (hacer la ventana donde seleccionamos la imagen) Descripcin Contiene una cadena con el ttulo que aparecer en el cuadro de dilogo. Ruta inicial que mostrar el control al abrirse Si no pones nada aparece por defecto mis documentos Normalmente no se pone nada. Filter tipo de archivos que mostrar el cuadro de dilogo al navegar por el sistema de archivos. El formato de esta cadena es el siguiente: NombreArchivo (*.Extensin)|*.Extensin; pudiendo situar varios filtros separados por el carcter de barra vertical ( | ). Los archivos que yo quiero visualizar, con qu extensin. Normalmente se pone: (EJEMPLOS) Cdigo fuente (*.vbproj) O Texto (*.txt) FileName. Nombre del archivo en el que se realizar la escritura Normalmente se deja en blanco FileName=

2VBNET

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

DefaultExt CheckFileExists ValidateNames

Cadena con la extensin por defecto a aplicar sobre el nombre del archivo. Valor lgico que nos permite comprobar si el archivo sobre el que vamos a grabar ya existe. Valor lgico que comprobar si el nombre de archivo proporcionado contiene caracteres especiales, es decir, si se trata de un nombre vlido.

Mtodos Mtodo ShowDialog() Por ejemplo: 'configurar el cuadro de dilogo por cdigo 'ponemos al control OpenFileDialog el nombre dlgAbrir Me.dlgAbrir.Title = "Seleccionar archivo a leer" Me.dlgAbrir.Filename="" Me.dlgAbrir.InitialDirectory = "E:\VISUAL BASIC NET" Me.dlgAbrir.Filter = "Cdigo fuente (*.vbproj)|*.vbproj|Texto (*.txt)|*.txt" 'abrir el dilogo Me.dlgAbrir.ShowDialog() Descripcin Para mostrar la ventana de dialogo.

Me.OpenFileDialog1.Filter = "Imgenes|*.bmp" Si pongo as aparecera la palabra imagenes en la ventana y cuando lo seleccione apareceran solo las imagenes de formatu.bmp

Title

InitialDirectory

Filename

2VBNET
Filter

Visual .NET
Microsoft Visual Studio 2005 Unidades Didcticas 17,18, 19, 20, 21, 22.1

LO HE HECHO AS Private Sub btselec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btselec.Click Me.OpenFileDialog1.Title = "seleccionar archivo a leer" Me.OpenFileDialog1.FileName = "" Me.OpenFileDialog1.Filter = "Imgenes|*.bmp" Me.OpenFileDialog1.ShowDialog() Me.pbimagen.Load(OpenFileDialog1.FileName)

El titulo es para el titulo, el filename donde se guardara la ruta para utilizar esta propiedad cuando quiera que en un Picturebox aparezca esa imagen. Me.pbimagen.Load(OpenFileDialog1.FileName) El showdialog es para que se abra

2VBNET

10

S-ar putea să vă placă și