2011-11-01 5 views
9

Ho un modulo MDI. all'interno di questo form MDI posso aprire alcuni form figlio utilizzando:Aprire un modulo figlio da un altro modulo figlio e impostare MDI sul modulo padre - come fare?

Questo è all'interno MainForm

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

Questo funziona come previsto!

Ma ora, mentre io sono in forma infantile (Form1 -> f1) voglio aprire un'altra forma come un bambino per MainForm, ma quando uso this parola chiave che verrà reffer a f1. Come posso aprire il nuovo modulo entro f1 e impostare il suo MdiParent su MainForm?

+1

Probabilmente potresti usare questo.MdiParent. Di solito è meglio lasciare la creazione di finestre figlio al genitore. Usa un evento per dirgli di agire. –

risposta

30

Provate ad assegnare il form padre del primo figlio da:

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

Spero che questo aiuti.

11

Supponiamo che la seconda forma è f2.Then, il codice in f1 forma per creare una nuova forma f2 nel form padre MDI sarà:

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

Beh, non discutere con la "soluzione" che è stato elencato ... ma se sto comprendere la richiesta correttamente e cercando la soluzione al di sopra di lavoro non ha ancora vorrei fare quanto segue ....

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