参考至: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 控件的使用相关推荐

  1. splitter 控件

    splitter 控件的作用,一是可以作为分隔条来分隔窗口中的不同部位,二是可以对窗口不同部位的大小进行实时调整. 如何界面让添加的Splitter纵向显示: Align 属性选择 alBottom ...

  2. C#入门学习-----图书阅读器(WPF 用户控件技术)

    欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 需要源码请与我联系. 编译平台:VS2008 + .Net Framework ...

  3. 【沧海拾昧】C# .Net 基本控件介绍

    #C0201 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题必是本集记录有谬, ...

  4. VS2010 控件集总介绍

    VS2010 控件集总介绍 在对VS的使用过程中,对其相关控件使用的熟悉是很重要的.接下来我将主要简单列举一下VS控件控件并简单介绍其用途: BackgroundWorker 组件 :使窗体或控件能够 ...

  5. .NET控件名称缩写一览表 zz

    标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Labe ...

  6. C#命名规范 C#控件的缩写大全

    标准控件 1 btn Button  2 chk CheckBox  3 ckl CheckedListBox  4 cmb ComboBox  5 dtp DateTimePicker  6 lbl ...

  7. QT中树控件QTreeView开发实例

    转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...

  8. C# 中常用数据类型与控件类型的命名规则

    数据类型 数据类型简写 标准命名举例 Array arr arrShoppingList Boolean bln blnIsPostBack Byte byt bytPixelValue Char c ...

  9. C# 控件缩写大全+命名规范+示例

    如有转载,请注明出处:http://www.cnblogs.com/flydoos/archive/2011/08/29/2158903.html C# 控件缩写大全+命名规范+示例 写程序的时候突然 ...

  10. C#控件前缀命名规范

    标准控件 1  btn Button 2  chk CheckBox 3  ckl CheckedListBox 4  cmb ComboBox 5  dtp DateTimePicker 6  lb ...

最新文章

  1. UA PHYS515A 电磁理论V 电磁波与辐射11 简单辐射问题 电偶极子的辐射
  2. vue一级分类和耳机分类_【Vue+DRF生鲜电商】10.商品分类层级获取,Vue跨域请求商品分类...
  3. Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置
  4. 块级元素和行内元素的区别
  5. Java中几种输出数组的for循环,以及循环中使用标签(非goto)
  6. TS - 问题解决力 - 上篇
  7. win7安装mysql8.0创建用户_CentOS如何安装MySQL8.0、创建用户并授权的详细步骤
  8. Mybatis自定义SQL拦截器
  9. python保存的图片不完整
  10. 天然气门站监控摄像头如何布置_监控摄像头布置原则
  11. js脚本捕获页面 GET 方式请求的参数?其实直接使用 window.location.search 获得
  12. 前锋php人工智能_人工智能除了学习php,还应该学什么?
  13. 嵌入式gdbserver远程调试【原创】
  14. 引介 | RLP 编码和解码
  15. jde 动态添加筛选条件的注意事项
  16. excel IRR利率函数公式,算利率
  17. 三星设备如何打开开发者模式、如何下载安装play store以便进行正常的Android开发中的google购买测试
  18. java 短连接转长连接_HTTP的长连接和短连接转换接口(API)
  19. 【国产单片机】华大HC32L13系列使用printf进行调试(多种方法)
  20. 自然语言处理(NLP)之路——概念理解——从 Google translate 的 seq2seq 看自然语言处理(NLP)的发展

热门文章

  1. 电影《暮光之城》不得不爱
  2. android device ID获取
  3. 智商测试图片素材软件,智商测试图片 测试你智商的图片[100P]
  4. An Introduction to Be-trees and Write Optimization 学习笔记
  5. 关于intelCPU缓存行,以及伪共享问题
  6. table总结insertRow、deleteRow
  7. 很全的zencart 模板修改
  8. Python趣味脚本,做一个简单的抽奖刮刮卡
  9. 我背透了这些前端八股文
  10. 散点图矩阵 pd.plotting.scatter_matrix