我们对控件进行分组的原因不外乎三个:
1、为了获得清晰的用户界面而将相关的窗体元素进行可视化分组。
2、编程分组,如对单选按钮进行分组。
3、为了在设计时将多个控件作为一个单元来移动。
在vb.net中,有GroupBox、Panel、TabControl这三个控件可以实现上面所提到的三个分组目的,所以我们称它们为分组控件。
这三个控件在功用上十分的相似,特别是GroupBox和Panel控件,只存在一点细微的差别而已(这个差别是:只有GroupBox控件可以显示标题,而只有Panel控件可以有滚动条)。这里我们就先来了解GroupBox控件的使用。
GroupBox(控件组)控件一般是作为其他控件的组的容器的形式存在的,这样有利于用户识别,使界面变得更加友好(GroupBox控件相当于Visual Basic以前版本的Frame控件)。使用控件组控件可以将一个窗体中的各种功能进一步进行分类,例如,将各种选项按钮控件分隔开。
当移动单个GroupBox控件时,它所包含的所有控件也将一起移动。
在大多数情况下,对控件组控件没有实际的操作。我们用它对控件进行分组,通常没有必要响应它的事件。不过,它的Name、Text和Font等属性可能会经常被修改,以适应应用程序在不同阶段的要求。
GroupBox控件在工具箱中的图标如图所示:
。
一、GroupBox控件的常用属性
1、Anchor和Dock:这两个属性是所有有用户界面的控件都有的定位属性,这里就不啰嗦了。
2、Name属性:标识控件的对象名称。
3、Text属性:显示在GroupBox控件右上方的标题文字,可以用来标识该控件组的描述。
4、Font和ForeColor属性,用于改变GroupBox控件的文字大小以及文字的颜色,需要注意的时候,它不单改变GroupBox控件的Text属性的文字外观,同时也改变其内部控件的显示的Text属性的文字外观。
二、创建一组控件
1、在窗体上放置GroupBox控件。从工具箱中拖放一个GroupBox控件到窗体上的合适位置,调整大小。
2、在属性窗口中改变GroupBox控件的Text属性,作为它的标题。
3、在GroupBox控件内拖放其它需要的控件,例如RadioButton控件。
4、设置示例,如图一所示:

图一:用控件组控件对单选按钮分组
5、我们在拖动单个GroupBox控件的时候,它内部的控件也会随着移动,以保持和GroupBox的相对位置不变。同理,删除GroupBox控件时,它所包含的所有控件也会被删除掉。
6、当我们调整GroupBox控件所包含的控件的Anchor和Dock属性的时候,其参照物将不是Form窗体,而是GroupBox控件了。
三、编程添加GroupBox控件以及它所包含的控件
虽然GroupBox控件是在设计时用视图设计布局效果最好,但是无可避免地,很多特殊情况下也是需要在运行做添加控件到控件组中的,这里我们就用代码来完成上图一界面的绘制。
动态添加控件一般需要经过下面三个步骤:
1、创建要添加的控件实例
2、设置新控件的属性。
3、将控件添加到父控件的 Controls 集合。
在Form1代码的任意位置增加初始化控件的过程InitializeControl(),代码如下所示:
Sub InitializeControl()
'首先添加Label和TextBox控件
Dim Label1 As New System.Windows.Forms.Label
Dim TextBox1 As New System.Windows.Forms.TextBox
'Label1
Label1.Location = New System.Drawing.Point(8, 8)
Label1.Name = "Label1"
Label1.Size = New System.Drawing.Size(64, 16)
Label1.TabIndex = 1
Label1.Text = "户主姓名"
'TextBox1
TextBox1.Location = New System.Drawing.Point(72, 7)
TextBox1.Name = "TextBox1"
TextBox1.Size = New System.Drawing.Size(128, 21)
TextBox1.TabIndex = 2
TextBox1.Text = ""

