2011-11-01 31 views
9

Tengo un formulario MDI. dentro de este formulario MDI puedo abrir algunos formularios secundarios usando:Abrir un formulario secundario de otro formulario secundario y configurar MDI en el formulario principal: ¿cómo hacerlo?

Esto está dentro MainForm

Form1 f1 = new Form1; 
f1.MdiParent = this; //this refers to MainForm (parent) 
f1.Show(); 

esto funciona como se esperaba!

Pero ahora, mientras estoy en el formulario secundario (Form1 -> f1) Quiero abrir otra forma de niño para MainForm pero cuando se utiliza la palabra clave this Será Reffer a f1. ¿Cómo puedo abrir el nuevo formulario dentro de f1 y establecer su MdiParent en MainForm?

+1

Probablemente pueda usar esto.MdiParent. Por lo general, es mejor dejar la creación de ventanas secundarias para el padre. Use un evento para decirle que actúe. –

Respuesta

30

intente asignar la forma padre de su primer hijo desde:

Form2 f2 = new Form2; 
f2.MdiParent = this.ParentForm; //this refers to f1's parent, the MainForm 
f2.Show(); 

Espero que esto ayude.

11

Supongamos que la segunda forma es f2.Then, el código en el formulario F1 para crear una nueva forma f2 en formulario MDI será:

Form2 f2 = new Form2; 
f2.MdiParent = this.MdiParent; 
f2.Show(); 
3

Bueno, no discutir con la "solución" que estaba en la lista ... pero si estoy entendiendo correctamente la solicitud y tratando los anteriores trabajos solución didnt yo haría lo siguiente ....

Form2 f2 = new Form2(); 
     f2.MdiParent = MDIParent1.ActiveForm; 
     f2.Show(); 
Cuestiones relacionadas