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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MATLAB中向量_向量法表示字符串

    MATLAB中向量_向量法表示字符串Matlab中的向量和数组(超详细)文章目录Matlab中的向量和数组(超详细)Matlab中的向量介绍创建向量向量的大小索引向量数值索引逻辑索引缩短向量向量运算算术运算逻辑运算sum()、min()、max()、round()、ceil()、floor()、fix()切片Maltab中的数组数组的属性创建数组访问数组元素数组运算数组的算术运算数组的逻辑运算sum()、max()、min()、……

    2025年7月2日
    0
  • phpstom 2022.01 激活码【最新永久激活】2022.02.03

    (phpstom 2022.01 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    43
  • UFT自动化测试

    UFT自动化测试自动化测试静态自动化:代码检测,类似于编译工具的编译系统动态自动化:基于浏览器和DOM对象的自动化:selemnium,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、MozillaFirefox、MozillaSuite等。这个工具的主要功能包括:测试与浏览器的兼容性–测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能–创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成Net、J…

    2022年5月28日
    62
  • java零基础自学_Java零基础自学经验

    java零基础自学_Java零基础自学经验Java零基础自学经验学习Java数学不好行不行?要到能自己开发小软件的水平要多久,入门需要看些什么材料啊,网上资料不是很好,培训又要花钱,新手零基础如何自学Java比较快速?下面是由百分网小编为大家整理的Java零基础自学经验,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!下面分享新新人类的自学经验之谈:我学了2周了,已经入门了,基本代码都能看懂,看不懂的研究研究也就懂了。重点是…

    2022年6月20日
    27
  • Myeclipse2017SVN插件安装[通俗易懂]

    Myeclipse2017SVN插件安装[通俗易懂]Myeclipse2017SVN插件安装链接已改为本人资源链接,自取.如果对你有帮助请给评论一下点个赞,十分感谢!

    2022年7月21日
    10
  • orchard core中文_MySQL comment

    orchard core中文_MySQL commentOrchardCore是基于ASP.NETCore开发的一个开源、多租户、模块化的应用程序框架OrchardCoreFramework,同时也构建了一套内容管理系统(CMS)OrchardCoreCMS。历史OrchardCore是对基于.NETFramework的OrchardCMS系统的在ASP.NETCore上重新设计和实现。OrchardCMS是基于SP.NE…

    2025年7月23日
    0

发表回复

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

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