2011-11-01 14 views
9

Mam formularz MDI. w tej postaci MDI mogę otworzyć kilka form potomnych za pomocą:Otwieranie formularza dziecka z innego formularza dziecka i ustawianie MDI na formularzu rodzica - jak to zrobić?

Jest ciągu MainForm

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

to działa zgodnie z oczekiwaniami!

ale teraz, gdy jestem w formie dziecięcej (Form1 -> f1) Chcę otworzyć inną formę jako dziecko na MainForm ale kiedy używam this słowa kluczowego będzie reffer do f1. Jak mogę otworzyć nowy formularz w numerze f1 i ustawić jego MdiParent na MainForm?

+1

Prawdopodobnie możesz użyć tego. MdiParent. Zazwyczaj najlepiej jest pozostawić okienko podrzędne rodzicowi. Użyj wydarzenia, aby powiedzieć mu, aby podjąć działanie. –

Odpowiedz

30

Spróbuj przypisywania formularza nadrzędnego swojego pierwszego dziecka od:

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

Mam nadzieję, że to pomoże.

11

Załóżmy, że druga forma jest f2.Then kod w f1 formularz, aby utworzyć nowy formularz F2 w postaci dominującej MDI będą:

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

Cóż, nie dyskutować z „rozwiązanie”, które zostały wymienione ... ale jeśli mam zrozumienia prośbę poprawnie i próbuje powyższą pracę rozwiązanie nie zrobił by zrobić następującą ....

Form2 f2 = new Form2(); 
     f2.MdiParent = MDIParent1.ActiveForm; 
     f2.Show(); 
Powiązane problemy