zoukankan      html  css  js  c++  java
  • 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;
    }

    }

  • 相关阅读:
    Node 修改默认镜像源
    Mac下apache虚拟主机配置
    Grep命令出现 Binary file (standard input) matches
    idea取出方法参数提示
    Java8 Optional用法
    Codeforces Round #638 (Div. 2)
    Codeforces Round #637 (Div. 2)
    Codeforces Round #636 (Div. 3)
    Tree
    Educational Codeforces Round 85
  • 原文地址:https://www.cnblogs.com/zilinyufeng/p/4123446.html
Copyright © 2011-2022 走看看