c#怎样实现换界面但是不换窗口

2025-01-19 07:53:18
推荐回答(6个)
回答1:

我刚完成一个这样的项目,我是把不同的界面做成用户自定义控件,当需要某个的时候就清空它的容器并添加这个控件,可以设置DOCK为FILL。
我这样做了感觉效果很好反应快且操作简单
供楼主参考

1.可以把窗体设置成不能改变大小
2.控件联系可以把需要传递的属性公开,就是public
如下
class Form1:Form
{
public String Property1
{
get{return this.textBoxProperty.Text;}
}

public Type Property2
{
get{return this.Property2;}
}
}
.....
class MainForm:Form
{
Form1 _form1=new Form1();
Form2 _form2=new Form2();

private void ShowForm1()
{
this.Controls.Clear();
this.Controls.Add(_Form1);
}

private Void ShowForm2()
{
form2.Initialize(_form2);
this.Controls.Clear();
this.Controls.Add(_Form2);
}
}

这只是个例子 你可以灵活点 比如把需要传递的信息封装成一个对象

回答2:

哪你就已开始就放上9个按钮,开始按钮5,6,7,8,9不显示,点1后在显示不就可以了吗!位置重叠也没关系的,只要不同时显示
你说的那些.net都解决得很好啊。一般控件都有dock这个属性就是来解决你说的改变窗口大小空间距离相应变化的。
你的工程很大吗?还要自定义控件?

回答3:

你把要显示的按钮放在panel中 默认visable为false 当点1的时候 visable置为true

楼主为什么要把 两个panel嵌套呢 不嵌套就不会出现隐藏一个 另一个也会隐藏的问题了啊

回答4:

使用用户控件,将不同的界面放置在自定义的控件上, 并将这些控件添加至panel中获取它容器中,当调用第一个窗体的时候将其它四个的visible设置为false。

回答5:

同意这个:

你把要显示的按钮放在panel中 默认visable为false 当点1的时候 visable置为true

这是在winform下实现的,如果是网站应该用用户自定义控件,将不必改变的放里面.要换的在另一个页面实现,同样很节约性能.我都是这样做的.

回答6:

堆上一大堆控件
然后利用visible属性来控制
窗体重载的基本思路就是这样
何必把功能界面差别很大的窗体坐在一起呢 = =