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;