none
Formulario dentor de otro formulario RRS feed

  • Pregunta

  • Buenos días,

    Como puedo abrir un Formulario dentro de otro Formulario?, y que el formulario que se abra solo se puede mover dentro del formulario principal, es decir, que no sea otra ventana independiente. Gracias

    Un Saludo

    sábado, 12 de agosto de 2017 11:09

Respuestas

  • Hola Juan:

     Los formularios contenedores son llamados MDI (Multiple Document Interface), estos formularios se caracterizan por contener a otros Formularios, un formulario al estar contenido dentro de otro es llamado MdiChild y el contenedor MdiParent:

    Crear formularios MDI primarios

     Para que un formulario sea MDI Parent, deberá de tener el valor de la Propiedad "IsMdiContainer" establecido en "True":

    y sera toda la configuración que necesite para ser un contenedor de formularios o MdiParent:

    ahora, para que un formulario este contenido dentro de un MdiParent, deberás de proporcionarle a la propiedad "MdiParent" la instancia del formulario padre, en todo caso el padre debe de mandar a llamar al hijo y pasarle su instancia:

    Dim form = new FormularioHijo();
    form.MdiParent = Me;
    form.Show();

     En el ejemplo de código, pongo asumo que tienes un formulario llamado FormularioHijo y que lo mandas a llamar dentro de algún evento del formulario padre, podría ser el click de un botón cualquiera.

    Un punto que considero importante comentar, es que un formulario Modal (llamado por medio del  ShowDialog()) no puede estar definido dentro de un MdiParent, cuando quieras llamar a un ShowDialog() no deberás de definirle valor a la propiedad MdiParent o recibirás una excepcion.

     Las imágenes mostradas fueron tomadas de este articulo:

    .NET WinForms: Aplicaciones MDI

    El cual sugiero leer así como la documentación adjunta a cada uno de los links.

     Espero que la información te sea de utilidad.

     


    Saludos desde Monterrey, Nuevo León, México!!!


    sábado, 12 de agosto de 2017 15:43

Todas las respuestas

  • Hola:

    Si lo abres el formulario 2 en modo modal te quedará dentro del formulario que lo llama.

    Formxx.show.Dialog

    Un saludo.

    Gemma


    sábado, 12 de agosto de 2017 11:35
  • Hola Juan:

     Los formularios contenedores son llamados MDI (Multiple Document Interface), estos formularios se caracterizan por contener a otros Formularios, un formulario al estar contenido dentro de otro es llamado MdiChild y el contenedor MdiParent:

    Crear formularios MDI primarios

     Para que un formulario sea MDI Parent, deberá de tener el valor de la Propiedad "IsMdiContainer" establecido en "True":

    y sera toda la configuración que necesite para ser un contenedor de formularios o MdiParent:

    ahora, para que un formulario este contenido dentro de un MdiParent, deberás de proporcionarle a la propiedad "MdiParent" la instancia del formulario padre, en todo caso el padre debe de mandar a llamar al hijo y pasarle su instancia:

    Dim form = new FormularioHijo();
    form.MdiParent = Me;
    form.Show();

     En el ejemplo de código, pongo asumo que tienes un formulario llamado FormularioHijo y que lo mandas a llamar dentro de algún evento del formulario padre, podría ser el click de un botón cualquiera.

    Un punto que considero importante comentar, es que un formulario Modal (llamado por medio del  ShowDialog()) no puede estar definido dentro de un MdiParent, cuando quieras llamar a un ShowDialog() no deberás de definirle valor a la propiedad MdiParent o recibirás una excepcion.

     Las imágenes mostradas fueron tomadas de este articulo:

    .NET WinForms: Aplicaciones MDI

    El cual sugiero leer así como la documentación adjunta a cada uno de los links.

     Espero que la información te sea de utilidad.

     


    Saludos desde Monterrey, Nuevo León, México!!!


    sábado, 12 de agosto de 2017 15:43