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;
}

}

时间: 2024-10-14 12:26:26

winform实现类似菜单的伸缩功能的相关文章

Winform 实现像菜单一样弹出层

原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出界面就显的非常重要了 我这里其实用到的是网上找到的一个控件(下载地址),控件可以把你装载的任何对象显示出来(这里的对象是指:窗体,自定义控件等),这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找 开始正文,这里我做一个多列下拉列表来说明: 1.新建w

istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

 1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> using namespace std; struct MyStruct { string str1, str2, str3; double db; int num; char ch; }; void main() { string  mystring("china  google microsoft

WinForm开发控制应用程序自启动功能

本文主要讲述WinForm开发应用程序需要设置自启动功能,这个也是在实际开发中经常涉及到的,非常实用,所讲到的是通过注册表来控制程序是否自行启动,具体功能实现上两张图,更直观. 如下图: 程序设置保持界面实现代码 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能)

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能) 分类:            Delphi2007-05-16 11:094911人阅读评论(2)收藏举报 delphiintegerstringbutton文本编辑function 今天偶尔要做的Delphi程序,其中涉及到了字符串处理,里面有一个功能类似于VB里的split()函数的功能,于是查了很久才查到些资料,现将这些资料整理一下,方便大家. 首先是一个网友自己编的函数.实现了和split()函数的功能. unit U

WinForm实现类似QQ停靠,显示隐藏过程添加特效效果

原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右下角会显示一个窗体,一般情况下该窗体会隐藏停靠在右边,只露出很小部分,当鼠标移动到这个很小部分时,窗体全部显示,显示过程是从右边滑动到左边,当鼠标离开窗体时,窗体需要隐藏在右边,只露出很小部分,隐藏过程是从左边滑动到右边. 实现此类效果我碰到的连个难点是:1.如何判断鼠标离开了窗体?2.窗体显示隐藏

解决:长按一条接收到的彩信,快捷菜单“选择性复制”功能错误

[测试步骤]长按一条接收到的彩信,快捷菜单--"选择性复制" [测试结果]功能错误,未实现选择性复制,实际是播放彩信内容 [预期结果]应该选择复制彩信内容 通过分析代码我们定位到以下代码: private final class MsgListMenuClickListener implements MenuItem.OnMenuItemClickListener { private MessageItem mMsgItem; public MsgListMenuClickListen

Hadoop-2.6.0上调用C的API实现类似云盘的功能

Hadoop-2.6.0上调用C的API实现类似云盘的功能(上传,下载,删除,重命名) 测试系统:CentOS6.6, hadoop-2.6.0 本次测试是调用hadoop下的C的API来访问HDFS实现类似云盘的上传,下载,删除,重命名的功能,其它功能还请有意者自行添加,废话少说,开始进入正题. 首先我们要能在hadoop-2.6.0上的C的API访问HDFS 详情可以访问:http://blog.csdn.net/u013930856/article/details/47660937 下面开

Javascript中document.execCommand()的用法 ( 实现浏览器菜单的很多功能 )

document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令参数(如下例中的"2D-Position"),交互方式参数如果是true的话将显示对话框,如果为false的话,则不显示对话框(下例中的"false"即表示不显示对话框),动态参数一般为一可用值或属性值(如下例中的"true"). document.

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robbe.html i.  Robbe完整版本下载:Robbe完整版本(PHP测试程序, 开发帮助文档, WinNT下php各版本的dll文件)下载: http://code.google.com/p/robbe(“谷歌”无法使用) b) SCWS(简易中文分词) 基于HTTP/POST的分词 : htt