C# 子窗体点击按钮产生的新子窗体放在父窗体里

情景展示:

父窗体Form1,左边是按钮,右边是panel(放置子窗体)

父窗体点击按钮,在panel显示第一个子窗体AA,

AA有个按钮,点击按钮,是第二个子窗体ZZ,

怎样将AA的子窗体ZZ也显示在父窗体Form1的panel里:

1、父窗体Form1的按钮点击事件

    panel1.Controls.Clear();
    AA s = new AA(this);
    s.TopLevel = false;
    s.Dock = DockStyle.Fill;
    s.FormBorderStyle = FormBorderStyle.None;
    panel1.Controls.Add(s);
    s.Show();

 父窗体的IsMdiContainer属性为True,子窗体还是默认的false

2.1、子窗体AA的构造函数改成如下

    Form1 f1;
    public AA(Form1 form1)
    {
        f1 = form1;
        InitializeComponent();
    } 

要显示在Form1父窗体的子窗体都如上改造

2.2、子窗体的按钮事件里

    f1.panel1.Controls.Clear();
    ZZ z = new ZZ(this);
    z.TopLevel = false;
    z.Dock = DockStyle.Fill;
    z.FormBorderStyle = FormBorderStyle.None;
    f1.panel1.Controls.Add(z);
    z.Show();
原文地址:https://www.cnblogs.com/Donnnnnn/p/6046199.html