Splitter 控件的使用
参考至:http://hi.baidu.com/sddyszb/blog/item/4a4a210b591b312e6b60fbbf.html
注意:Splitter 已被 SplitContainer 取代,而且SplitContainer的使用更为方便。
概念解释:
可调整的控件:可以被Splitter控件调整的控件。两者有相同的Dock属性,而且可调整控件位于Splitter控件在Dock属性方向一侧。
例如下例中的TreeView的Dock属性为Left,而Splitter的Dock属性也为Left,且TreeView控件位于Splitter控件的左侧(Left),则TreeView控件为可调整控件;
Splitter 控件使用户可以在运行时调整停靠到 Splitter 控件边缘的控件的大小。
当用户将鼠标指针移到 Splitter 控件上时,光标将更改以指示可以调整停靠到 Splitter 控件的那些控件的大小。Splitter 控件使用户可以调整在停靠顺序中紧靠它前面的停靠控件的大小。因此,若要使用户可以调整停靠控件的大小,则将希望用户能够调整大小的控件停靠到一个容器的边缘,然后将拆分器停靠到该容器的同一侧。
例如,若要创建一个与 Windows 资源管理器类似的窗口,则
(1)将TreeView 控件添加到一个窗体中,并将其 Dock 属性设置为 DockStyle.Left。
(2)将 Splitter 控件添加到此窗体并将其 Dock 属性设置为 DockStyle.Left。
(3)若要完成窗体布局,则添加 ListView 控件并将其 Dock 属性设置为DockStyle.Fill 从而使 ListView 占据窗体上的剩余空间。
若要确保 Splitter 控件不会将停靠的控件尺寸调整得太小而使用户无法使用,则使用 MinExtra 和 MinSize 属性。MinExtra 和 MinSize 属性确定停靠到左侧和右侧(如果是水平 Splitter 控件,则停靠到顶部和底部)的控件可调整到的最小尺寸。
如果 Splitter 控件停靠到的窗体上的其他控件显示特定的边框样式,则可以使用 BorderStyle 属性来匹配停靠到该窗体上的控件的边框样式。
这样,在运行时,用户通过移动 Splitter 控件就可以重新调整TreeView 控件(及 ListView 控件)的宽度。
您可能希望对 Splitter 控件所停靠的控件设置最大尺寸限制。SplitterMoved 和 SplitterMoving 事件使您可以确定用户何时调整停靠控件的大小。可以使用 SplitterMoved 或 SplitterMoving 事件的事件处理程序中的 SplitPosition 属性来确定 Splitter 控件停靠到的控件的大小,并将 SplitPosition 属性设置为不同的值来将停靠控件的宽度限制到指定的最大宽度(或如果是水平对齐的 Splitter 控件,则指高度)。
Splitter控件在资源管理器的使用如下图所示:
常用属性:
1、BorderStyle 属性、BackColor 属性、BackgroundImage 属性
这三个属性都是用来调整控件的外观,是所有有界面控件的基本属性。
2、Visible属性
如果设置为False,则不能显示(同时也不能用于手动调控)
3、MinExtra 属性
在 Splitter 控件与容器另一侧的边缘(或停靠到该侧的最近控件)之间的最小距离,换句话说,也是Splitter 控件未停靠区域的最小大小。
以像素表示,默认值为 25。
对于水平 Splitter 控件(停靠到容器顶部或底部的 Splitter 控件),容器中为未停靠的控件保留的区域的最小高度为此值减去 Splitter 控件的高度。
对于垂直 Splitter 控件(停靠到容器左侧或右侧的 Splitter 控件),为未停靠的控件保留的容器区域的最小宽度为此值减去 Splitter 控件的宽度。用户移动拆分器不能超过此属性指定的限制。
注意:如果 MinExtra 属性设置为负值,则该属性值将重置为 0。
4、MinSize 属性
在 Splitter 控件与该控件停靠到的容器边缘之间的最小距离,换句话说是指 Splitter 控件正在调整的控件的最小大小。
以像素表示,默认值为 25。
对于水平 Splitter 控件(停靠到容器顶部或底部的 Splitter 控件),此值是可调整大小控件的最小宽度。
对于垂直 Splitter 控件(停靠到容器左侧或右侧的 Splitter 控件),此值是可调整大小控件的最小高度。用户移动拆分器不能超过此属性指定的限制。
注意:如果 MinSize 属性设置为负值,则该属性值将重置为 0。
对于以上两个属性对界面的影响,我们可以参看如下图三:(注:图中的 Splitter 控件是停靠在窗体左边的)
示例:
实现类似资源管理器,该用户界面分为三个部分,由两个Splitter 控件来分隔和控制这三个的大小。
控件的Dock属性全部都设置为Left,另外控件的拖放顺序也会影响到布局。
1、先在窗体上放置部分一的控件(TreeView1),然后把它的 Dock 属性设置为Left,使得RichTextBox1停靠在窗体的左边;
2、现在往窗体上拖放一个Splitter 控件(Splitter1),把它的 Dock 属性也设置为Left,使得它就停靠在TreeView1的右边缘;
设置Splitter1的MinSize为25;即TreeView1最少有25像素的宽度;
设置Splitter1的MinExtra为125;即ListView1最少有125像素的宽度;
3、往窗体上拖放部分二的控件(ListView1),然后把它的 Dock 属性设置为Fill,使得它充满剩余的整个窗口;
效果如下图所示:
现在运行程序,就可以通过Splitter控件来调整其它两个控件的大小了。
为了使美观,可以将Splitter控件的Size属性中的Width设为1;
Splitter 控件的使用相关推荐
- splitter 控件
splitter 控件的作用,一是可以作为分隔条来分隔窗口中的不同部位,二是可以对窗口不同部位的大小进行实时调整. 如何界面让添加的Splitter纵向显示: Align 属性选择 alBottom ...
- C#入门学习-----图书阅读器(WPF 用户控件技术)
欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 需要源码请与我联系. 编译平台:VS2008 + .Net Framework ...
- 【沧海拾昧】C# .Net 基本控件介绍
#C0201 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题必是本集记录有谬, ...
- VS2010 控件集总介绍
VS2010 控件集总介绍 在对VS的使用过程中,对其相关控件使用的熟悉是很重要的.接下来我将主要简单列举一下VS控件控件并简单介绍其用途: BackgroundWorker 组件 :使窗体或控件能够 ...
- .NET控件名称缩写一览表 zz
标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Labe ...
- C#命名规范 C#控件的缩写大全
标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl ...
- QT中树控件QTreeView开发实例
转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...
- C# 中常用数据类型与控件类型的命名规则
数据类型 数据类型简写 标准命名举例 Array arr arrShoppingList Boolean bln blnIsPostBack Byte byt bytPixelValue Char c ...
- C# 控件缩写大全+命名规范+示例
如有转载,请注明出处:http://www.cnblogs.com/flydoos/archive/2011/08/29/2158903.html C# 控件缩写大全+命名规范+示例 写程序的时候突然 ...
- C#控件前缀命名规范
标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lb ...
最新文章
- UA PHYS515A 电磁理论V 电磁波与辐射11 简单辐射问题 电偶极子的辐射
- vue一级分类和耳机分类_【Vue+DRF生鲜电商】10.商品分类层级获取,Vue跨域请求商品分类...
- Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置
- 块级元素和行内元素的区别
- Java中几种输出数组的for循环,以及循环中使用标签(非goto)
- TS - 问题解决力 - 上篇
- win7安装mysql8.0创建用户_CentOS如何安装MySQL8.0、创建用户并授权的详细步骤
- Mybatis自定义SQL拦截器
- python保存的图片不完整
- 天然气门站监控摄像头如何布置_监控摄像头布置原则
- js脚本捕获页面 GET 方式请求的参数?其实直接使用 window.location.search 获得
- 前锋php人工智能_人工智能除了学习php,还应该学什么?
- 嵌入式gdbserver远程调试【原创】
- 引介 | RLP 编码和解码
- jde 动态添加筛选条件的注意事项
- excel IRR利率函数公式,算利率
- 三星设备如何打开开发者模式、如何下载安装play store以便进行正常的Android开发中的google购买测试
- java 短连接转长连接_HTTP的长连接和短连接转换接口(API)
- 【国产单片机】华大HC32L13系列使用printf进行调试(多种方法)
- 自然语言处理(NLP)之路——概念理解——从 Google translate 的 seq2seq 看自然语言处理(NLP)的发展