[英]In C# how to open third form inside first form when i click a button of the second form
In my Windows Forms
application, I have 3 different Form
s ( Form1, Form2, Form3 )在我的
Windows Forms
应用程序中,我有 3 个不同的Form
( Form1, Form2, Form3 )
Form1 Contains a Button and a Panel (button1, panel1) Form1包含一个按钮和一个面板 (button1, panel1)
Form2 Contains only a button (button) Form2只包含一个按钮(button)
Form3 Contains nothing Form3 不包含任何内容
In Form1 when I click button1 , Form2 opens in panel1在 Form1 中,当我单击 button1 时,Form2 在 panel1 中打开
private void button1_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
Form2 f2 = new Form2();
f2.TopLevel = false;
panel1.Controls.Add(f2);
f2.Dock = DockStyle.Fill;
f2.Show();
}
Now, inside Form2, when i click the button, I want the Form3 open inside Form1's panel, I've tried this code...现在,在 Form2 中,当我单击按钮时,我希望在 Form1 的面板内打开 Form3,我已经尝试过此代码...
Form1 f1 = new Form1();
private void button1_Click(object sender, EventArgs e)
{
f1.panel1.Controls.Clear();
Form3 f3 = new Form3();
f3.TopLevel = false;
f1.panel1.Controls.Add(f3);
f3.Dock = DockStyle.Fill;
f3.Show();
}
Note: In Form1 I've changed the modifier to public for the Panel注意:在 Form1 中,我已将面板的修饰符更改为 public
Step 1: Create functions in Form1 to Show the other Forms:步骤 1:在 Form1 中创建函数以显示其他表单:
class Form1
{
public void ShowForm2() {...}
public void ShowForm3() {...}
// TODO: think about: do you need IsForm2Shown?
// TODO: think about what you want if ShowForm2 is called twice
...
} }
Step 2: Let Form2 know about Form1.第 2 步:让 Form2 了解 Form1。 Give Form2 a function to show Form3 inside Form1
给 Form2 一个函数在 Form1 里面显示 Form3
class Form2
{
public Form1 Form1 {get; set;}
protected void ShowForm3InsideForm1()
{
this.Form1.ShowForm3();
}
}
Whenever Form one creates Form2 it should fill property Form1
.每当 Form one 创建 Form2 时,它应该填充属性
Form1
。 So inside Form1.ShowForm2()
:所以里面
Form1.ShowForm2()
:
var form2 = new Form2()
{
Form1 = this,
...
}
form2.Show();
Step 3: whenever you find in Form 2 that you want to "show form 3 in form 1", just call the proper function第 3 步:每当您在 Form 2 中发现要“在表单 1 中显示表单 3”时,只需调用适当的函数
// Somewhere inside Form2 code you decide that you want to show Form3 inside Form1:
this.ShowForm3InsideForm1();
Simple comme bonjour!简单的来吧!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.