Foros del Web » Programación para mayores de 30 ;) » .NET »

abrir mdichildren desde otro mdichildren

Estas en el tema de abrir mdichildren desde otro mdichildren en el foro de .NET en Foros del Web. Hola. Tengo un mdiParent que posee un menu con el cual abre los distintos mdichildren, en una ubicacion específica. Lo que quiero hacer es abrir ...
  #1 (permalink)  
Antiguo 21/12/2009, 14:54
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
abrir mdichildren desde otro mdichildren

Hola.

Tengo un mdiParent que posee un menu con el cual abre los distintos mdichildren, en una ubicacion específica.

Lo que quiero hacer es abrir un mdichildren desde otro mdichildren, pero que el mdichildren2 (el que se abre despues) aparezca en la misma posicion que si es que lo abriera desde el mdiParent...

Espero me entiendan.

El método que uso para abrir un mdiChildren desde el menu del mdiParent es:

Código C#:
Ver original
  1. private void antecedentesMédicosToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.  
  4.             Controles.AntecedentesMedicos am = null;
  5.             //Barremos las formas que hay en el parent para encontrar la referencia
  6.             foreach (Form f in this.MdiChildren)
  7.             {
  8.                 if (f is Controles.AntecedentesMedicos)
  9.                 {
  10.                     am = (Controles.AntecedentesMedicos)f;
  11.                     break;
  12.                 }
  13.             }
  14.             //Si la encontró ya no necesita la instancia solo la mostramos
  15.             if (am != null)
  16.             {
  17.                 am.Show();
  18.                 am.Focus();
  19.             }
  20.             else
  21.             {
  22.                 //No se ha creado por lo tanto generamos la instancia
  23.                 am = new Controles.AntecedentesMedicos();
  24.                 am.MdiParent = this;
  25.                 am.Show();
  26.                 am.Focus();
  27.             }
  28.         }


Por ejemplo este me abre un mdi children que se llama "AntecedentesMedicos".

Espero me puedan ayudar. Saludos Gracias!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #2 (permalink)  
Antiguo 22/12/2009, 10:33
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: abrir mdichildren desde otro mdichildren

Me respondo, por si a alguien le sirve.

Para hacer esto, con el mismo código, se le debe entregar al nuevo mdichild el parent del mdichild ya abierto, de manera que sea el "padre" del nuevo "hijo" que se abrirá.

Y poner el código en el botón que llame al nuevo hijo que se quiere mostrar.

Código C#:
Ver original
  1. private void antecedentesMédicosToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.  
  4.             Controles.AntecedentesMedicos am = null;
  5.             //Barremos las formas que hay en el parent para encontrar la referencia
  6.             foreach (Form f in this.MdiChildren)
  7.             {
  8.                 if (f is Controles.AntecedentesMedicos)
  9.                 {
  10.                     am = (Controles.AntecedentesMedicos)f;
  11.                     break;
  12.                 }
  13.             }
  14.             //Si la encontró ya no necesita la instancia solo la mostramos
  15.             if (am != null)
  16.             {
  17.                 am.Show();
  18.                 am.Focus();
  19.             }
  20.             else
  21.             {
  22.                 //No se ha creado por lo tanto generamos la instancia
  23.                 am = new Controles.AntecedentesMedicos();
  24.                 am.MdiParent = this.MdiParent;  //<-- Esto es todo lo que hay que arreglar...
  25.                 am.Show();
  26.                 am.Focus();
  27.             }
  28.         }


Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:38.