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

时间:2022-06-01 18:16:52

情景展示:

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

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

父窗体点击按钮,在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();