c#怎么实现点击按钮,下面的界面切换?

sjyzhxw 2012-09-28 04:46:19


如图
...全文
3236 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbmmqq 2014-04-10
  • 打赏
  • 举报
回复
引用 12 楼 sp1234 的回复:
[Quote=引用 9 楼 的回复:] 如果各 panel上有大量的控件,大量的自定义对象 直接用 panel1, panel2, panel3那就太累了 不如分成多个窗体各自处理,然后再把窗体加到panel上 [/Quote] 是这样设计的! 不过那不是窗体,而是自定义控件。自定义控件用于放入任何容器内,可以放入其它窗体,也可以放入其它自定义控件内部。 程序员要从自定义控件开发角度去设计程序。你虽然已经了解了“界面开发的分工协同需要能够拆散、动态组合”的机制,可是还是停留在“窗体”,而不能从一个个用户控件的角度去设计界面架构。
感谢~~!!!从自定义控件的角度
patrickjiang 2012-10-03
  • 打赏
  • 举报
回复
实现上分好几种办法,有懒人懒办法,高手高办法。
零-点 2012-10-03
  • 打赏
  • 举报
回复
TabControl 可以做到这种切换的效果
楼主也可以用按钮和 Panel 做到,点击按钮隐藏跟显示面板就可以达到面板的切换
ggewt2td 2012-10-02
  • 打赏
  • 举报
回复
用 weiluofen 那个控件,可以直接嵌入窗体,
不过感觉那控件用了很多API,不是很稳定,

用 UserControl 比较稳定,但要求视图都作成 UserControl
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
如果各 panel上有大量的控件,大量的自定义对象
直接用 panel1, panel2, panel3那就太累了
不如分成多个窗体各自处理,然后再把窗体加到panel上
[/Quote]
是这样设计的!

不过那不是窗体,而是自定义控件。自定义控件用于放入任何容器内,可以放入其它窗体,也可以放入其它自定义控件内部。

程序员要从自定义控件开发角度去设计程序。你虽然已经了解了“界面开发的分工协同需要能够拆散、动态组合”的机制,可是还是停留在“窗体”,而不能从一个个用户控件的角度去设计界面架构。
  • 打赏
  • 举报
回复
底下的部分那个是UserControl,而不是Form。

设计程序时会把所有需要插入底下布局控件(例如就是Panel)内的UserControl首先定义一个接口规范,于是主窗口就动态实例化不同的UserControl,插入布局控件的Controls集合中。

这个接口规范是核心,它表示内容控件跟主窗体的所有交互行为。
  • 打赏
  • 举报
回复
帮顶,我也研究下
SocketUpEx 2012-10-02
  • 打赏
  • 举报
回复
如果各 panel上有大量的控件,大量的自定义对象
直接用 panel1, panel2, panel3那就太累了
不如分成多个窗体各自处理,然后再把窗体加到panel上

shaya5888 2012-10-02
  • 打赏
  • 举报
回复
一种是用几个Panel,一种是用TabControl(这个要自己重绘)。
cfon2500 2012-09-28
  • 打赏
  • 举报
回复
this.panel1.Controls.Clear();//点击按钮,先清空panel里的内容
Form1 form = new Form1{ TopLevel = false, FormBorderStyle = FormBorderStyle.None };//要添加的Form不显示窗体头和边框
this.panel1.Controls.Add(form );//把form里的内容添到panel中
form.Show();//显示内容
Change_L 2012-09-28
  • 打赏
  • 举报
回复
Form1 form=new Form1();
private void button_Click(object sender, EventArgs e)
{
this.panel1.Controls.Add(form);
form.Show();
}
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
下面同一位置摆几个Panel,比如叫panel1 panel2...
每个页面的控件摆在panel里面
编写如下代码:
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = false;
...
if (sender == button1)
panel1.Visible = true;
if (s……
[/Quote]
您这也太懒了吧,就拿出这么个丑陋的方案来...
用MdiParent属性来控制form嵌入form吧。或者用tabcontrol
把那么多的内容都放在一个画面中会很笨重
浪子-无悔 2012-09-28
  • 打赏
  • 举报
回复
根据点击的按钮,重绘下面的Panel就是了~~~~
江湖评谈 2012-09-28
  • 打赏
  • 举报
回复
  tabcongtrol 重绘标题头


wndproc消息截获即可
threenewbee 2012-09-28
  • 打赏
  • 举报
回复
下面同一位置摆几个Panel,比如叫panel1 panel2...
每个页面的控件摆在panel里面
编写如下代码:
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = false;
...
if (sender == button1)
panel1.Visible = true;
if (sender == button2)
panel2.Visible = true;
if (sender == button3)
panel3.Visible = true;
...
将几个按钮click都指向这个事件处理函数。
sjyzhxw 2012-09-28
  • 打赏
  • 举报
回复
点击首页,系统优化等,下面红色圈出的部分改变。

110,545

社区成员

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

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

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