引自:http://blog.sina.com.cn/s/blog_75c55a1501011280.html

1.可以将 Windows 窗体 SplitContainer 控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。

使用  SplitContainer  控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。拥有两个面板使您可以聚合不同区域中的信息,并且用户可以轻松地使用拆分条(也称为“拆分器”)调整面板的大小。

另外,还可以嵌套多个  SplitContainer  控件,并且第二个  SplitContainer  控件可以水平放置,从而产生上面板和下面板。

请注意,SplitContainer  控件默认情况下可通过键盘来访问。如果  IsSplitterFixed  属性设置为  false,用户可以按箭头键来移动拆分器。

SplitContainer  控件的  orientation  属性决定拆分器的方向,而不是决定控件本身的方向。因此,当该属性设置为  Vertical  时,拆分器将垂直放置,从而产生左面板和右面板。

此外,还应注意  SplitterRectangle  属性的值是随  orientation  属性的值变化的。有关更多信息,请参见  SplitterRectangle  属性。

还可以限制  SplitContainer  控件的大小和移动。FixedPanel  属性决定调整  SplitContainer  控件大小后,哪个面板将保持原来的大小,IsSplitterFixed  属性则决定是否可以通过键盘或鼠标来移动拆分器。

常用属性、方法和事件

FixedPanel  属性

*  确定调整  SplitContainer  控件大小后,哪个面板将保持原来的大小。

IsSplitterFixed  属性

*  确定是否可以使用键盘或鼠标来移动拆分器。

orientation  属性

*  确定拆分器是垂直放置还是水平放置。

SplitterDistance  属性

*  确定从左边缘或上边缘到可移动拆分条的距离(以像素为单位)。

SplitterIncrement  属性

*  确定用户可以移动拆分器的最短距离(以像素为单位)。

SplitterWidth  属性

*  确定拆分器的厚度(以像素为单位)。

SplitterMoving  事件

*  拆分器移动时发生。

SplitterMoved  事件

*  拆分器移动后发生。

  2.如何:定义拆分窗口中的大小调整和定位行为

用户可以轻松调整  SplitContainer  控件面板的大小并对其执行各种操作。但是,有时您可能要以编程方式控制拆分器放置的位置以及可以移动的程度。

利用  SplitContainer  控件上的  SplitterIncrement  属性和其他属性,您可以根据自己的需要精确控制用户界面的行为。下表列出了这些属性。

IsSplitterFixed  属性

*  确定拆分器是否可以通过键盘或鼠标进行移动。

SplitterDistance  属性

*  确定从左边缘或上边缘到可移动拆分条的距离(以像素为单位)。

SplitterIncrement  属性

*  确定用户可以移动拆分器的最短距离(以像素为单位)。

  下面的示例修改了  SplitterIncrement  属性,以创建“对齐拆分器”效果;在用户拖动拆分器时,它会以  10  个像素(而非默认的  1  个像素)为单位进行递增。

定义  SplitContainer  调整大小行为
在过程中,将  SplitterIncrement  属性设置为所需大小,以实现拆分器的“对齐”行为。

在下面的代码示例中,在窗体的  Load  事件中将  SplitContainer  控件中的拆分器设置为拖动时跳过  10  个像素。

C#
private  void  Form1_Load(System.Object  sender,  System.EventArgs  e)
{
SplitContainer  splitSnapper  =  new  SplitContainer();
splitSnapper.SplitterIncrement  =  10;
splitSnapper.Dock  =  DockStyle.Fill;
splitSnapper.Parent  =  this;
}
(Visual  C#)  在窗体的构造函数中放置以下代码以注册事件处理程序。

C#
this.Load  +=  new  System.EventHandler(this.Form1_Load);

3.如何:水平拆分窗口水平拆分窗口
在程序中,将  SplitContainer  控件的  orientation  属性设置为  Horizontal。

C#
public  void  showSplitContainer()
{
SplitContainer  splitContainer1  =  new  SplitContainer  ();
splitContainer1.BorderStyle  =  BorderStyle.Fixed3D;
splitContainer1.Location  =  new  System.Drawing.Point  (74,  20);
splitContainer1.Name  =  "DemoSplitContainer";
splitContainer1.Size  =  new  System.Drawing.Size  (212,  435);
splitContainer1.TabIndex  =  0;
splitContainer1.Orientation  =  orientation.Horizontal;
this.Controls.Add  (splitContainer1);

}

4.如何:用  Windows  窗体创建多窗格用户界面在下面的过程中,将创建一个类似于在  Microsoft  Outlook  中使用的多窗格用户界面,该界面中包含“文件夹列表”、“邮件”窗格和“预览”窗格。这种排列主要是通过在窗体上停靠控件实现的。在停靠控件时,可以确定控件要紧靠父容器的哪个边缘。这样,如果将  Dock  属性设置为  Right,控件的右边缘将停靠在它的父控件的右边缘。此外,控件停靠边缘的大小将调整为与它的容器控件的大小匹配。有关  Dock  属性工作方式的更多信息,请参见如何:在  Windows  窗体上停靠控件。该过程的重点是在窗体上排列  SplitContainer  和其他控件,而不是添加功能以使得应用程序类似于  Microsoft  Outlook。若要创建该用户界面,请将所有控件放到  SplitContainer  控件(其左侧面板中包含  TreeView  控件)中。SplitContainer  控件的右侧面板中包含另一个  SplitContainer  控件,其中  ListView  控件在  RichTextBox  控件上方。这些  SplitContainer  控件支持在窗体上分别调整其他控件的大小。可以改编此过程中的方法,制作出您自己的自定义用户界面。以编程方式创建  Outlook  样式的用户界面在窗体内,声明组成用户界面的每个控件。本示例使用  TreeView、ListView、SplitContainer  和  RichTextBox  控件来创建类似于  Microsoft  Outlook  的用户界面。

C#
private  System.Windows.Forms.TreeView  treeView1;
private  System.Windows.Forms.ListView  listView1;
private  System.Windows.Forms.RichTextBox  richTextBox1;
private  System.Windows.Forms.  SplitContainer  splitContainer2;
private  System.Windows.Forms.  SplitContainer  splitContainer1;

创建定义用户界面的过程。下面的代码设置属性,以使窗体类似于  Microsoft  Outlook  的用户界面。但是,通过使用其他控件或使它们停靠在不同的位置,一样可以轻松创建同样灵活的其他用户界面。
C#
public  void   createOutlookUI()
{
//  Create  an  instance  of  each  control  being  used.
treeView1  =  new  System.Windows.Forms.TreeView();
listView1  =  new  System.Windows.Forms.ListView();
richTextBox1  =  new  System.Windows.Forms.RichTextBox();
splitContainer2  =  new  System.Windows.Forms.SplitContainer();
splitContainer1  =  new  System.Windows.Forms.SplitContainer();

//  Insert  code  here  to  hook  up  event  methods.

//  Set  properties  of  TreeView  control.
treeView1.Dock  =  System.Windows.Forms.DockStyle.Fill;
treeView1.TabIndex  =  0;
treeView1.Nodes.Add("treeView");

//  Set  properties  of  ListView  control.
listView1.Dock  =  System.Windows.Forms.DockStyle.Top;
listView1.TabIndex  =  2;
listView1.Items.Add("listView");

//  Set  properties  of  RichTextBox  control.
richTextBox1.Dock  =  System.Windows.Forms.DockStyle.Fill;
richTextBox1.TabIndex  =  3;
richTextBox1.Text  =  "richTextBox1";

//  Set  properties  of  first  SplitContainer  control.
splitContainer1.Dock  =  System.Windows.Forms.DockStyle.Fil1;
splitContainer2.TabIndex  =  1;
splitContainer2.SplitterWidth  =  4;
splitContainer2.SplitterDistance  =  150;
splitContainer2.Orientation  =  orientation.Horizontal;
splitContainer2.Panel1.Controls.Add(this.listView1);
splitContainer2.Panel1.Controls.Add(this.richTextBox1);

//  Set  properties  of  second  SplitContainer  control.
splitContainer2.Dock  =  System.Windows.Forms.DockStyle.Fil1;
splitContainer2.TabIndex  =  4;
splitContainer2.SplitterWidth  =  4;
splitContainer2.SplitterDistance  =  100;
splitContainer2.Panel1.Controls.Add(this.treeView1);
splitContainer2.Panel1.Controls.Add(this.splitContainer1);

//  Add  the  main  SplitContainer  control  to  the  form.
this.Controls.Add(this.splitContainer2);
this.Text  =  "Intricate  UI  Example";
}
在  Visual  Basic  中,添加对在  New()  过程中刚创建的过程的调用。在  Visual  C#  中,将这行代码添加到窗体类的构造函数。

C# SplitContainer 控件详细用法相关推荐

  1. Qt QTableWidget表格控件的用法(非常详细)

    Qt QTableWidget表格控件的用法(非常详细) QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给 ...

  2. QTableWidget表格控件的用法(非常详细)

    QTableWidget表格控件的用法(非常详细) [1] QTableWidget表格控件的用法(非常详细) [2] QTableWidget详解 1.常用API设置 自动调整行高和列宽 设置表格内 ...

  3. (转)SplitContainer 控件(Windows 窗体)

    1.可以将 Windows 窗体 SplitContainer 控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板.当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的 ...

  4. ASP.NET-----Repeater数据控件的用法总结

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

  5. Asp.net Ajax AutoComplete 控件的用法

    AutoComplete控件是微软提供的ASP.NET AJAX Control Toolkit 中的一个控件,是用来实现类似百度搜索的自动完成效果. AutoComplete控件的用法很简单,只要在 ...

  6. ElementUI+VUE 日期控件禁用用法

    今天给大家整理一下ElementUI+VUE 日期控件禁用用法,希望对大家有所帮助! HTML文件 <el-date-pickerv-model="value"type=&q ...

  7. 【转】WPF从我炫系统5---基本控件的用法

    今天我来给大家讲解WPF中一些基本控件的用法,所谓基本控件,就是我们最常用用到的一些控件,通过这一节的讲解,大家会对WPF中的控件的用法有一个更深入的了解. 1.       基本控件 LABEL控件 ...

  8. 【转】WPF从我炫系列4---装饰控件的用法

    在这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollVie ...

  9. 【转】WPF从我炫系列3---内容控件的用法

    今天我来给大家讲解WPF中内容控件的用法,在WPF中的内容控件,通俗的讲,是指具有Content属性的控件,在content属性里面可以嵌套放置任意其他类型的控件,但是Content只能接受单个元素, ...

  10. aspx repeater 用法_ASP.NET-----Repeater数据控件的用法总结

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

最新文章

  1. chmod a+r *:用户自己使用此命令,柯给所有用户添加可读的权限
  2. Selenium之多窗口句柄的切换
  3. uos系统不激活能用吗_国产统一操作系统UOS真的能代替window系统吗? UOS上手体验...
  4. spring(5)构建 spring web 应用程序
  5. MySQL 是如何实现RC事务隔离级别的
  6. matlab梯形模糊数,基于梯形模糊数的OWA方法与matlab应用
  7. github push代码出错fatal: Authentication failed for ‘https:/
  8. 支付宝花呗接口接入php,支付宝小程序开通花呗接口,这是正式向微信小程序正式宣战?...
  9. oracle学习资料
  10. 对话Ruby创始人松本行弘、阿里高级技术专家朴灵!
  11. 曲线拟合最小二乘法优缺点_最小二乘法、回归分析法、灰色预测法、决策论、神经网络等5个算法的使用范围及优缺点是什么?...
  12. kotlin-stdlib 与 kotlin-stdlib-jdk7
  13. java9 javascript_[Java教程]9最好的JavaScript压缩工具
  14. JavaScript之购物车
  15. 使用Xcode的memory graph查找内存泄漏
  16. 2021哪款蓝牙耳机好?音质、颜值顶尖的五款优秀蓝牙耳机推荐
  17. Collections用法
  18. 英雄联盟也能作为作文素材
  19. 科大奥锐密立根油滴实验数据_(最新)大学物理实验报告系列之密立根油滴实验...
  20. Java 字符的 编码 与 乱码 和恢复

热门文章

  1. windows下批量创建txt文件
  2. 第24期、宠物医院管理系统
  3. border英文缩写_第一丶第二丶第三丶第四的英文缩写是什么
  4. 2020年ROS机器人操作系统用户官方调查
  5. 一阶梯度法、二阶段梯度法、牛顿法
  6. PLINK-GWAS学习9------对于二元数据的关联分析
  7. python 规则引擎 drools_Drools规则引擎入门指南(一)
  8. android 插桩工具,自插桩测试示例  |  Android 开源项目  |  Android Open Source Project...
  9. outlook2016修改服务器,Outlook 2016 pop3 设置
  10. [源码解读]position_estimator_inav_main解读(如何启动光流)