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


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

    在网上看到一种做法:原文网址: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;
    }

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

    像这种下拉菜单,这种方法很不错,但是对于我那种横向布局的来说就不太适合了,因为左边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;
    }

    }

  • 相关阅读:
    QT设置窗口屏幕居中
    屏蔽ubuntu桌面鼠标右键以及Ctrl Alt F*
    ubuntu12.04 U盘自动挂载配置
    最受欢迎的15个Python开源框架
    异步非阻塞IO的Python Web框架--Tornado
    RabbitMQ RPC问题
    petapoco模板修改
    事件&表达式
    .net core2 单元测试
    检查邮箱IP是否在国际反垃圾邮件组织的黑名单中
  • 原文地址:https://www.cnblogs.com/zilinyufeng/p/4123446.html
Copyright © 2020-2023  润新知