WinForm界面设计的问题??

desertstu 2010-08-02 05:28:43
我在工具栏中每次点击一个button都会有一个界面出现在这个窗体上,当我在工具栏上点击另一个button的时候就会出现另一个不同的界面出现在当前窗体上,但是之前的界面会消失。


我之前是用panel控件来实现的,有几个界面就用多少个panel控件,然后点击一个button,通过隐藏,显示来实现效果,可是这样在做代码实现的时候非常困难。有什么控件可以用吗?或者什么方法??
...全文
520 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
vs1424 2011-04-21
  • 打赏
  • 举报
回复
将窗体属性设为不是顶级窗体
jianuMan 2010-08-03
  • 打赏
  • 举报
回复
你可以这样划分面板

窗体 上面是 工具栏 下面有个panel Dock为Fill
然后从user control 继承下来n个控件
和button一一对应
某个button点击的时候 将对应的user control new出来 然后 填充到panel上面
这样设计器的时候 面板上的控件也不会出问题

有如果使用n个panel的话 设计器的时候 很容易弄混了 panel会自动叠加
宇峰科技 2010-08-03
  • 打赏
  • 举报
回复
最好用tabcontrol了,分开来
desertstu 2010-08-02
  • 打赏
  • 举报
回复
谢谢,楼上各位,我试试看看。不过我又遇到个头痛的问题,还请帮忙解决下

http://topic.csdn.net/u/20100802/20/f8192e4e-4b66-40eb-b953-1cf0070edb80.html?66225
smartls 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 desertstu 的回复:]
引用 9 楼 linamong 的回复:
如果你不愿意改变你这个思路 可以用一个switch 做一个方法

private void (int i)
{
panel1.v = false;
panel2.v = false;
panel3.v = false;
panel4.v = false;

int plshow = i;
switch(i)
case 1:
pan……
[/Quote]

你这个很显然是一种向导窗体嘛,通过点击“下一步”按钮实现导向另一个界面。我觉得用不用panel都无所谓,如果控件多而且排列紧密,就用Panel.至于翻页效果,可以使用Control.BringToFront()函数,置于最前端显示。

至于你提到的“被盖住了,不知道编码怎么办”,我不是很了解。这有什么困难吗
desertstu 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 linamong 的回复:]
如果你不愿意改变你这个思路 可以用一个switch 做一个方法

private void (int i)
{
panel1.v = false;
panel2.v = false;
panel3.v = false;
panel4.v = false;

int plshow = i;
switch(i)
case 1:
panel1.v = true;
case 2:……
[/Quote]


这个方法的确可以实现很好的效果,但是这么多panel都放在一个窗体,我编写代码怎么办啊,都盖住了,这种情况我不知纳闷多久了,就想有没有好的办法可以不这样做
linamong 2010-08-02
  • 打赏
  • 举报
回复
漏的 省略的地方自己补充
linamong 2010-08-02
  • 打赏
  • 举报
回复
如果你不愿意改变你这个思路 可以用一个switch 做一个方法

private void (int i)
{
panel1.v = false;
panel2.v = false;
panel3.v = false;
panel4.v = false;

int plshow = i;
switch(i)
case 1:
panel1.v = true;
case 2:
panel2.v = true;
case 3:
panel3.v = true;
case 4:
panel4.v = true;
}
wxm3630478 2010-08-02
  • 打赏
  • 举报
回复
一个panel ,做多个[用户控件]即可.....每次只要先Clear()panel, 在把控件Add()到panel就可以
jointan 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuweifenfang 的回复:]
你是想让主窗体上内嵌窗体吗???
你可以在主窗体Button下写
Form2 f=new Form2();
f.levtop(手写的忘了属性名怎么写了,大概是)=false;将窗体属性设为不是顶级窗体
this.control.add(f);
f.show();
form2就会嵌入显示在form1中。
[/Quote]
frm.TopLevel = false;
恒拓信息科技 2010-08-02
  • 打赏
  • 举报
回复
你是想让主窗体上内嵌窗体吗???
你可以在主窗体Button下写
Form2 f=new Form2();
f.levtop(手写的忘了属性名怎么写了,大概是)=false;将窗体属性设为不是顶级窗体
this.control.add(f);
f.show();
form2就会嵌入显示在form1中。
jointan 2010-08-02
  • 打赏
  • 举报
回复
Panel.Controls也可以Add无边框的Form,控制Form的隐显要比控制Control更方便
hyblusea 2010-08-02
  • 打赏
  • 举报
回复
看看你的代码.....
kolucifer 2010-08-02
  • 打赏
  • 举报
回复
用tabcontrol 哈
deknight 2010-08-02
  • 打赏
  • 举报
回复
不是消失,是盖住了吧?搜索 "永远最上" ...
desertstu 2010-08-02
  • 打赏
  • 举报
回复
这么快就沉 了,顶一下

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧