Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/12/2009, 10:33
Avatar de pyroCL
pyroCL
 
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
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.