martes, 2 de junio de 2009

MDI (Documento de Interface Múltiple)

Hasta el momento (o por lo menos si has seguido este foro) hemos visto formularios solitarios que al ejecutarlos abren una ventanita y punto, pero las aplicaciones de verdacita, tiene muchos formularios que son de la misma aplicación por esa razón existen los formularios MDI, que, son formularios Padres dentro de los cuales se abren otros formularios (hijos).

Como dije anteriormente dentro de un MDI pueden abrirse muchos formularios hijo, los cuales no pueden salir del formulario Padre (como se ve en la imagen siguiente) y cuando este se cierra, todos los hijos se cierran con el, a diferencia de otros Forms SDI (Single Document Interfase) que al cerrar uno lo otros se mantienen activos.


Para insertar un nuevo formulario MDI, damos clic derecho (en la venta de Solution Explorer) en el icono del Proyecto (No el que dice Solution, sinó el siguiente) y luego Add (Agregar), y despues New Item (Nuevo Elemento) y en las posibles opciones tenemos buscamos MDI Parent (En español no se, algo que diga MDI jejej).

Automaticamente nos aparece ya con el Menú PullDown (PopUp como le decían a mi ex compañero de colegio Tacamiche) la ToolBar y una barra de estado (Que por sierto en un Post anterio hablé de ella).

Solo resta configurarlo a nuestro gusto.

Ahora bien, si deseamos llamar un formulario desde nuestro MDI en el vento click de cualquier botón del ToolBar o alguna opción del menú hacemos lo siguiente:

Form1 patito = new Form1();
patito.MdiParent = this;
patito.Show();

La Primera Linea declara una Variable llamada patito, de tipo Form1, aludiendo que el primer formulario que crearon se llama así, sinó obviamente colóquenle el nombre que tiene el Formulario.

La segunda Linea: hace que el formulario hijo, sepa quien es su padre, en este caso this (Este formualio, de donde lo esta declarando) hace referencia al mismo MDI.

La Tercera Linea: simplemente muestra el formulario en pantalla.

Repetir este proceso para todos los demás formularios.

4 comentarios:

  1. profe queria saber si podria postear el ultimo codigo de progress bar o del timer el ultimo que programamos la verdad no m acuerdo cual fue que no termine de copiar. que programamos el lunes,gracias!

    ResponderEliminar
  2. Jenn: Lo busco y lo posteo, bueno, el Timer, ya está posteado

    Saludos

    ResponderEliminar
  3. Buenisimo!!!! recien empiezo y la verdad que estaba haciendo cosas re gronchas para hacar algo parecido, porque yo solo conocia los winform.
    Pero esto es estupendo!!!!!!

    ResponderEliminar
  4. buenas tardes, tengo este problema cuando quiero crear varios formularios hijos dentro de un padre, no me deja y me estoy volviendo loco... te paso el cod y me podras ayudar??
    private void nuevoEventoToolStripMenuItem_Click(object sender, EventArgs e)
    {
    frm_nuevo_evento frm_nuevo_evento = new frm_nuevo_evento();
    frm_nuevo_evento.MdiParent = this;
    frm_nuevo_evento.Show();
    }

    private void altaDeEquipoToolStripMenuItem1_Click(object sender, EventArgs e)
    {
    frm_alta_de_equipo frm_alta_de_equipos = new frm_alta_de_equipo();
    frm_nuevo_evento.MdiParent = this;
    frm_alta_de_equipos.Show();
    }

    ResponderEliminar