C# 单击子面板内的按钮控件时在父面板中显示窗体的步骤

C# 单击子面板内的按钮控件时在父面板中显示窗体的步骤,c#,winforms,panel,C#,Winforms,Panel,我有四张表格。表格一,表格二,表格三,表格四。 当我单击form1.panel1中的按钮时,form2将显示在form1.panel1中。Form2还有一个面板和按钮。 单击form2中的按钮控件时,form3将显示在form2中包含的小面板中。我在点击按钮时通过以下代码实现了上述所有操作\ panel1.Controls.Clear(); form2 f2 = new form2(); f2.TopLevel = false;

我有四张表格。表格一,表格二,表格三,表格四。 当我单击form1.panel1中的按钮时,form2将显示在form1.panel1中。Form2还有一个面板和按钮。 单击form2中的按钮控件时,form3将显示在form2中包含的小面板中。我在点击按钮时通过以下代码实现了上述所有操作\

        panel1.Controls.Clear(); 
        form2 f2 = new form2();
        f2.TopLevel = false;
        panel1.Controls.Add(f2);
        f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        panel1.Location = new Point(this.ClientSize.Width / 2 - panel1.Size.Width / 2, this.ClientSize.Height / 2 - panel1.Size.Height / 2);
        panel1.Anchor = AnchorStyles.None;
        panel1.Dock = DockStyle.Fill;
        f2.Show();
我想实现的是,当我单击form3(出现在form2的子面板中)时,form4应该出现在parentpanel中(比如form1.panel1)

我使用了下面的代码,但是表单没有显示

        Form4 f4 = new Form4();

        Form1 f1 = new Form1();
        f4.TopLevel = false;
        f1.panel1.Controls.Clear();
        f1.panel1.Controls.Add(f4);
        f4.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        f1.panel1.Location = new Point(this.ClientSize.Width / 2 - f1.panel1.Size.Width / 2, this.ClientSize.Height / 2 - f1.panel1.Size.Height / 2);
        f1.panel1.Anchor = AnchorStyles.None;
        f1.panel1.Dock = DockStyle.Fill;
        this.Hide();

        f4.Show();

如何实现它?

您现在要做的是在
form3
中创建
form1
的新实例。您需要做的是将
f1
(在
form1
中使用
this
)作为参数从
form1
传递到
form2
传递到
form3
,这样您就可以以其他形式访问原始的
form1


也许有更好的解决办法,但这是我现在能想到的。希望有帮助。

你解决了吗?如果有帮助,请接受这个答案。