C# 单击子面板内的按钮控件时在父面板中显示窗体的步骤
我有四张表格。表格一,表格二,表格三,表格四。 当我单击form1.panel1中的按钮时,form2将显示在form1.panel1中。Form2还有一个面板和按钮。 单击form2中的按钮控件时,form3将显示在form2中包含的小面板中。我在点击按钮时通过以下代码实现了上述所有操作\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;
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
也许有更好的解决办法,但这是我现在能想到的。希望有帮助。你解决了吗?如果有帮助,请接受这个答案。