码迷,mamicode.com
首页 > Windows程序 > 详细

winform实现类似菜单的伸缩功能

时间:2014-11-26 18:20:27      阅读:2204      评论:0      收藏:0      [点我收藏+]

标签:winform   style   blog   http   io   ar   os   sp   for   

 做一个winform程序,界面上有许多不常用,但是又不能少的控件,放在界面上不美观,所以就想把它隐藏起来,需要的时候再显示出来。效果大致如图:bubuko.com,布布扣

在网上看到一种做法:原文网址:http://www.cnblogs.com/xiaolifeidao/archive/2013/01/22/2870841.html

、在form上添加一个FlowLayoutPanel的容器,然后设置其属性,AutoSize=ture,AutoSizeMode=GrowAndShrink,Dock=Fill,FlowDirection=TopDown

二、在FlowLayoutPanel容器中放置各种控件,但是必须先用Panel布局,不然这些控件都会挤在一起;

三、添加button按钮,添加代码:

if (panel1.Visible == true)
{
panel1.Visible = false;
}
else
{

panel1.Visible = true;
}

然后就做成上图那种效果,这种方法更适用于下图效果:

bubuko.com,布布扣

 

像这种下拉菜单,这种方法很不错,但是对于我那种横向布局的来说就不太适合了,因为左边panel1隐藏的时候,右边的panel直接填充panel1的位置,而panel原来的位置就空出来了,如果想panel填充整个空间,就必须在点击隐藏按钮的时候加一句设置panel宽度的代码。但这样一来,一旦窗口放大或缩小,原来的布局就又乱了。而改成下拉的又不符合初衷。

  刚才无意间发现splitContainer控件有两个子属性Panel1Collapsed和Panel2Collapsed,这两个属性确定panel是折叠还是展开;所以添加如下代码试了下,成功解决问题。

private void button1_Click(object sender, EventArgs e)
{
if (splitContainer1.Panel1Collapsed == true)
{
splitContainer1.Panel1Collapsed = false;
}
else
{
splitContainer1.Panel1Collapsed = true;
}

}bubuko.com,布布扣

winform实现类似菜单的伸缩功能

标签:winform   style   blog   http   io   ar   os   sp   for   

原文地址:http://www.cnblogs.com/zilinyufeng/p/4123446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!