SplitContainer(拆分条控件)

SplitContainer(拆分条控件)1.可以将Windows窗体SplitContainer控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。使用SplitContainer控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。拥有两个面板使您可以聚合不同区

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

SplitContainer 控件的 orientation 属性决定拆分器的方向,而不是决定控件本身的方向。因此,当该属性设置为 Vertical 时,拆分器将垂直放置,从而产生左面板和右面板。此外,还应注意 SplitterRectangle 属性的值是随 orientation 属性的值变化的。有关更多信息,请参见 SplitterRectangle 属性。

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

注:需要选中SpliContainer控件需先单击右键,弹出上下文菜单,单击<选择“SplitContainer1”>即可。

1、常用属性、方法和事件

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.richTextB ox1);

// 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.splitCont ainer1);

// Add the main SplitContainer control to the form.

this.Controls.Add(this.splitContainer2);

this.Text = "Intricate UI Example";

}

转载自:http://blog.csdn.net/jlxyfeng/article/details/6792303

可另参考:http://blog.csdn.net/hxy870/article/details/8547061

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161095.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode 回文数_java 字符串转整数

    leetcode 回文数_java 字符串转整数原题链接请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“1

    2022年8月8日
    6
  • java遍历entry,java遍历map entry.set[通俗易懂]

    Java中Map的entrySet()详解以及用法(四种遍历map的方…2020年11月30日entrySet是java中键-值对的集合,Set里面的类型是Map.Entry,一般可以通过map.entrySet()得到。entrySet实现了Set接口,里面存放的是键值对。一个K对……HashMap的添加修改遍历Map.EntryMap.entrySet…_…

    2022年4月7日
    66
  • 推荐一个非常实用的博客群发工具[通俗易懂]

    推荐一个非常实用的博客群发工具[通俗易懂]http://sns.juziyue.com/webinvite.php?u=30603这是注册地址,名字叫菊子曰,支持很多blog…

    2022年7月13日
    19
  • TCP/IP协议详解

    TCP/IP协议详解认识HTTP协议它是互联网协议(InternetProtocolSuite),一个网络通信模型,是互联网的一个基本的构架。HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件…

    2022年6月13日
    49
  • php的Allowed memory size of 134217728 bytes exhausted问题解决办法

    php的Allowed memory size of 134217728 bytes exhausted问题解决办法php的Allowed memory size of 134217728 bytes exhausted问题解决办法

    2022年4月24日
    50
  • 黑盒测试用例设计 二[通俗易懂]

    黑盒测试用例设计 二[通俗易懂]因果图法一.方法简介1.定义是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。2.因果图法产生的背景等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件…

    2022年4月30日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号