2011-06-22 78 views
9

Tôi có biểu mẫu Cha mẹ và tôi muốn mở biểu mẫu con trong biểu mẫu gốc.Làm cách nào để mở biểu mẫu trong biểu mẫu?

Việc này có thể thực hiện được không? Nếu có, vui lòng trả lời tôi kèm theo mã mẫu.

Cảm ơn!

+1

Bạn có nghĩa là chỉ cần mở biểu mẫu con bằng childform.ShowDialog() hoặc chắp thêm hoặc đặt biểu mẫu con bên trong biểu mẫu gốc ???? –

+1

@dia Tôi thích đặt biểu mẫu con bên trong biểu mẫu gốc. Nếu nó có thể được thực hiện xin vui lòng trả lời với mã mẫu. – cmthakur

+0

Tôi đã thêm câu trả lời cho yêu cầu của bạn .... –

Trả lời

6

Sau đây là mã để thực hiện những gì bạn muốn:

Giả sử rằng button1 ở dạng cha mẹ.

private void button1_Click(object sender, EventArgs e) 
     { 
      this.IsMdiContainer = true; 
      Form Form2 = new Form(); 
      Form2.MdiParent = this; 
      Form2.Show(); 
     } 

Cũng vào liên kết sau đây sẽ cung cấp cho bạn thông tin chi tiết tốt hơn nhiều hơn những gì bạn muốn làm:

http://www.codeproject.com/KB/cs/mdiformstutorial.aspx

Hope this helps ...

3

thông báo cho biểu mẫu con rằng MdiParent của nó là biểu mẫu hiện tại.

MDI:

form2 frm = new form2(); 
    frm.MdiParent = this; 
    frm.Show(); 
2

Modal thoại:

var form = new Form1(); 
form.Parent = this; 
form.ShowDialog(); 

MDI con:

var newMDIChild = new Form1(); 
newMDIChild.MdiParent = this; 
newMDIChild.Show(); 
+0

Đối với hộp thoại phương thức, tôi gặp lỗi trên biểu mẫu.Parent = this, nhưng đã có thể thực hiện form.ShowDialog (this) –

6

Nó phụ thuộc vào những gì bạn có ý nghĩa bởi "trong biểu mẫu". Nếu bạn cần có biểu mẫu con được hiển thị dưới dạng kiểm soát của biểu mẫu gốc, tôi đoán bạn có thể thử ParentForm.Controls.Add(new ChildForm()). Hoặc thậm chí có thể đặt mẫu con trong thùng chứa hiện có trong biểu mẫu gốc bằng cách sử dụng bộ sưu tập Controls của kiểm soát có chứa.

HTH

+0

+1 để xem xét 'trong cụm từ' –

0
Form child = new Form(); 
child.MdiParent = this; 
child.Show(); 

Viết những dòng mã trong form cha và kiểm tra.

4

tôi lưu ý rằng tất cả các câu trả lời ở đây giả sử OP dự định sử dụng kiến ​​trúc MDI Form, mặc dù điều đó không bao giờ được nêu rõ ràng.

Và có một cách khác là Biểu mẫu có thể được tạo thành 'Child' của một Biểu mẫu khác: chỉ cần đặt thuộc tính 'TopLevel to' False và sau đó đặt thuộc tính Gốc của nó thành Biểu mẫu khác.

Form2 f2 = new Form2(); 
f2.TopLevel = false; 
f2.Parent = someOtherForm; 
f2.Show(); 

Bằng cách Tôi nghĩ rằng toàn bộ ý tưởng của 'Các hình thức trong hình thức' là một ý tưởng tồi và MDI Kiến trúc hiện nay, chính đáng, không dùng nữa bởi MS.

Tốt hơn nhiều, tôi tin rằng, để làm cho hình thức thứ 'nước, và nếu bạn phải có thùng đựng khác nhau bên trong một Form, UserControls sử dụng, Panels vv

+0

Đây là câu trả lời hay, nhất là khi ai đó đang làm việc để hiển thị và ẩn nhiều điều khiển bảng điều khiển. Tôi thích cái này! – CodeIt

-2
var childform = new form2(); 
childform.TopLevel=false; 
this.Controls.add(childform); 
childform.Show(); 

này làm việc cho tôi.

Các vấn đề liên quan