2011-11-01 6 views
9

Tôi có biểu mẫu MDI. trong hình thức MDI này tôi có thể mở một số hình thức con sử dụng:Mở biểu mẫu con từ một biểu mẫu con khác và đặt MDI thành biểu mẫu gốc - cách thực hiện?

này nằm MainForm

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

này làm việc như mong đợi!

Nhưng bây giờ, khi tôi ở dạng con (Form1 -> f1), tôi muốn mở một biểu mẫu khác làm con cho MainForm nhưng khi tôi sử dụng this từ khóa, nó sẽ trả về f1. Làm cách nào để mở biểu mẫu mới trong phạm vi f1 và đặt MdiParent thành MainForm?

+1

Bạn có thể sử dụng điều này.MdiParent. Nó thường là tốt nhất để lại tạo cửa sổ con cho cha mẹ. Sử dụng một sự kiện để yêu cầu sự kiện đó thực hiện hành động. –

Trả lời

30

Hãy thử gán form cha của đứa con đầu lòng của bạn từ:

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

Hy vọng điều này sẽ hữu ích.

11

Chúng ta hãy giả sử rằng hình thức thứ hai là f2.Then, mã trong f1 hình thức để tạo ra một hình thức mới f2 trong form cha MDI sẽ là:

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

Vâng, không phải để tranh luận với "giải pháp" đã được liệt kê ... nhưng nếu tôi hiểu được yêu cầu một cách chính xác và cố gắng giải pháp làm việc didnt trên tôi sẽ làm như sau ....

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