作者:欣仪威侑扬芸_782 | 来源:互联网 | 2023-05-17 19:28
一个管理系统,在主界面form1的控件panel中嵌入另一个窗口form2,当我点击from2中的一个按钮后,在panel中的窗口转换为form3,该如何实现?
一个管理系统,在主界面form1的控件panel中嵌入另一个窗口form2,当我点击from2中的一个按钮后,在panel中的窗口转换为form3,该如何实现?
8 个解决方案
楼上完全正解
但我觉得这效果很不好
最大的一点 就是 这是单线程 的。
所有的form绘制 都在主线程中 如果其中一个有逻辑运算需要时间 整个窗体全部卡死!
如果没关闭, 用Active激活窗体就行了。
如果关闭了, 就只好再show出来了。
也可以用单态,Form1:
private Form1()
{
InitializeComponent();
}
public static Form1 f1;
public static Form1 createInstence()
{
if (f1 == null)
f1 = new Form1();
return f1;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
form2:
private void button1_Click(object sender, EventArgs e)
{
this.Close();
Form3 f3 = new Form3();
Form1 f1 = Form1.createInstence();
f1.panel1.Controls.Add(f3);
f3.Show();
}
需要吧Form1中Panel1的modifer属性设为Public,麻烦些,
我想请问一下 这两句代码什么意思?
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f3.TopLevel = false;
this.Parent.Controls.Add(f3);