[英]MDI Child Forms Opening each other with the same parent form
因此,我有3個表單,可以將它們稱為Form1,Form2和Form3。 我已經將Form1的IsMDIParent屬性發送為true。
當我啟動應用程序時,它將使用以下形式將Form2加載為MDI子級:
Form2 frm = new Form2();
frm.MdiParent = this;
frm.Show();
而且效果很好。 然后,我要做的是單擊帶有第二個表單的按鈕,該按鈕將關閉Form2並將Form3作為Form1的子表單打開。
我試過了
SecondForm SecondFormMDI = new SecondForm();
SecondFormMDI.MdiParent = Form1;
SecondFormMDI.Show();
在Form2中的按鈕單擊事件上,但是它將不起作用。
我是否必須始終從父表單啟動子表單? 如果是這樣,當它在子窗體的按鈕單擊事件上時,我將如何去做?
只需使用this.MdiParent,而不是Form1,就像
SecondForm SecondFormMDI = new SecondForm();
SecondFormMDI.MdiParent = this.MdiParent;
SecondFormMDI.Show();
您可以在設計時設置任何形式的MDIParent,為什么要在運行時設置? 只需將Form2和Form3的MDIParent屬性的值設置為Form1即可。
您可以在MDIForm中創建一個方法來打開子窗體:
public void OpenForm(Form form)
{
form.MdiParent = this;
form.Show();
}
當您想以另一種形式打開新表單時,您可以執行以下操作(ChildFormOne中帶有按鈕的示例):
private void btnOpenChildFormTwo_Click(object sender, EventArgs e)
{
((MDIForm)this.MdiParent).OpenForm(new ChildFormTwo());
this.Close();
}
希望這可以幫助。
ChildForm frmChild = new ChildForm();
frmChild.MdiParent = this.MdiParent;
frmChild.Dock = DockStyle.Fill();
frmChild.Show();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.