第四章 标准控件应用
复习要求
1.熟练掌握标签控件、文本框控件、命令按钮控件、单选按钮控件。
2.熟练掌握复选框控件、列表框控件、组合框控件、滚动条控件。
3.熟练掌握框架控件、计时器控件。
复习内容
一、标签控件
(一)标签控件的属性
标签控件的属性分为两部分,一部分是多数控件的通用属性,另一部分是标签控件特有的属性。以下是多数控件的一些通用属性,这些属性也适用于标签控件。
1.Name
返回在代码中用于控件的名称,在属性窗口中显示为“(名称)”,在运行时是只读的。
2.BackColor
返回或设置控件中文本和图形的背景颜色。
3.Caption
返回或设置在控件中显示的文本。
4.Enabled
返回或设置一个布尔值,决定控件是否响应用户生成事件。
5.ForeColor
返回或设置控件中文本和图形的前景颜色。
6.Font
返回或设置一个 Font对象,用于指定控件中文本的字体名称、字体样式和字体大小。Font.Name属性等同于FontName属性,Font.Bold属性等同于FontBold属性,Font.Size属性等效于FontSize属性,等等。
7.Height和Width
返回或设置控件的高度和宽度。
8.Left和Top
返回或设置控件左边缘和上边缘与容器左边缘和上边缘间的距离。
9.Visible
返回或设置一个布尔值,决定控件是否可见。
10.Alignment
返回或设置标签中文本的水平对齐方式。该属性有以下三个取值:
0(默认值)表示左对齐,1表示右对齐,2表示居中对齐。
11.AutoSize
返回或设置一个布尔值,以决定控件是否自动改变大小以显示其全部内容。若该属性值为True,则自动改变控件大小以显示全部内容;若为False(默认值),则保持控件大小不变,超出控件区域的内容被裁剪掉。
12.BackStyle
返回或设置一个值,指定标签控件的背景是透明的还是非透明的。有以下两个取值:
0表示透明,即在控件后的背景色和任何图片都是可见的;1(默认值)表示非透明,即用控件的BackColor属性设置值填充该控件,并隐藏该控件后面的所有颜色和图片。
13.BorderStyle
返回或设置一个值,指定标签控件的边框样式。该属性有以下两个取值:
0(默认值)表示无边框,1表示有固定单线边框。
14.WordWrap
返回或设置一个布尔值,指示一个AutoSize属性设置为True的标签控件是否要进行水平或垂直展开,以适合其Caption属性中指定的文本的要求。
(二)标签控件的方法
标签控件具有一些方法,其中最常用的是 Move方法,用于在窗体上移动标签控件。
语法格式如下:
object.Move left, top, width, height
其中object表示标签控件,Move后面的4个参数均为单精度值;left和top是必选参数,分别指示object 左边的水平坐标(x轴)和object 顶边的垂直坐标(y轴);width和height为可选参数,分别指示 object的新宽度和新高度。
(三)标签控件的事件
标签控件能够响应多数鼠标事件,但由于标签所显示的文本不能被编辑,因此标签不能获得焦点,也不能响应与焦点相关的事件和键盘事件。以下是标签控件的常用事件。
1.Change
通过代码改变 Caption属性的设置时发生。
2.Click
当用鼠标单击标签控件时发生。
3.DblClick
当用鼠标双击标签控件时发生。
4.MouseDown和 MouseUp
分别在按下和释放鼠标键时发生。
5.MouseMove
在移动鼠标时发生。
(四)控件的基本操作
为应用程序设计图形用户界面时,通常需要在窗体上添加各种各样的控件,并对控件的属性和布局格式进行设置。
1.添加控件
在工具箱中单击表示某个控件的图标,然后在窗体上拖动鼠标以绘制一个控件;也可以在工具中双击表示某个控件的图标,此时将在窗体中央添加一个控件。
2.选取控件
在工具箱中单击指针图标,然后用鼠标单击要选取的控件;若要选取多个控件,可按住“Shift”键同时依次单击各个控件,或者在窗体上拖出一个选择框,把这些控件包围起来。
3.移动控件
用鼠标指针指向控件内部并将其拖到新位置上即可。
4.调整控件大小
用鼠标指针拖动控件四周的控制点并向适当方向拖动鼠标,直到控件大小符合要求时释放鼠标。
提示:也可以在窗体上选择控件,然后使用属性窗口来设置其 Left、Top、Width 和Height属性值,以精确地设置控件的位置和大小。
5.复制控件有时需要在窗体上添加多个相同类型的控件,而且这些控件的外观也大致一样,此时可以先添加一个控件并设置其属性,然后通过以下复制操作来添加其他控件。
(1)在窗体上选取要复制的一个或多个控件。
(2)从“编辑”菜单中选择“复制”命令。
(3)若要把该控件的副本粘贴到某个容器控件(如图像框或框架)中,则单击该容器控件。
(4)从“编辑”菜单中选择“粘贴”命令。
(5)当出现提示已经有某控件、是否要创建控件数组时(若要创建控件数组),可单击“是”按钮;若不想创建控件数组,可单击“否”按钮。
6.删除控件
在窗体上选取要删除的一个或多个控件,然后从“编辑”菜单中选择“删除”命令,或直接按下“Delete”键。
7.设置控件的格式
设计用户界面时,往往需要使一组控件按某种方式对齐或把它们调整成相同的尺寸。在 Visual Basic集成开发环境中,可以使用窗体编辑器来完成这些操作。
在默认情况下,窗体编辑器工具栏是不显示的。若要显示窗体编辑器工具栏,可选择“视图”→“工具栏”→“窗体编辑器”命令,使该命令项中出现复选标记,这将使窗体编辑器工具栏显示出来。
使用窗体编辑器工具栏可以对控件进行以下设置。
1)置前与置后
单击“置前”按钮可把所选控件移到窗体上所有其他控件的上方,单击“置后”按钮可把所选控件移到窗体上所有其他控件的下方。
2)设置控件之间的对齐方式
首先选取一组控件(具有蓝色控制点的控件将作为参考控件),然后单击窗体编辑器左边的向下箭头,并从弹出的菜单中选择所需要的对齐方式。
3)设置控件相对于窗体的居中对齐方式
首先选取一组控件,然后单击窗体编辑器中间的向下箭头,并从弹出的菜单中选择“水平对齐”或“垂直对齐”命令。
4)把控件调整成相同大小
首先选取一组控件(具有蓝色控制点的控件将作为参考控件),然后单击窗体编辑器左边的向下箭头,并从弹出的菜单中选择“宽度相同”、“高度相同”或“两者都相同”命令。
5)锁定控件
当完成控件布局时,可单击“锁定”按钮,使之处于凹陷状态,这将锁定窗体上的所有控件的当前位置。
8.把多于两个的控件设置相同间距
先选取这些控件,然后选择“格式”→“水平间距”→“相同间距”或“格式”→“垂直间距”→“相同间距”命令。
二、文本框控件
(一)文本框的常用属性
1.MaxLength
返回或设置一个值,指出在文本框控件中能够输入的字符是否有一个最大数量,如果是,则指定能够输入的字符的最大数量。在DBCS(双字节字符集)系统中,每个字符能够取两个字节而不是一个字节,以此来限制能够输入的字符的数量。
2.MultiLine
返回或设置一个布尔值,决定文本框是否可以接受和显示多行文本。若设置为 True,则文本框允许多行文本,此时可在文本框内用Alignment属性设置文本的对齐方式;若设置为False(默认值),则忽略回车符并将数据限制在一行内,此时Alignment属性不起作用。该属性在运行时是只读的。
3.PasswordChar
返回或设置一个值,指示所输入的字符或占位符在文本框控件中是否要显示出来。例如,在用文本框输入密码时,通常将该属性设置为“*”。若MultiLine属性设置True,则设置PasswordChar属性将不起效果。
4.ScrollBars
返回或设置一个值,指示一个对象是有水平滚动条还是有垂直滚动条。该属性有以下4个取值。(1)vbSBNone-0(默认值):无滚动条。
(2)vbHorizontal-1:有水平滚动条。
(3)vbVertical-2:有垂直滚动条。
(4)vbBoth-3:同时有两种滚动条。
提示:ScrollBars属性在运行时是只读的。若文本框的MultiLine属性设置为True且其ScrollBars属性设置为None(0),则滚动条总出现在文本框上。
5.SelLength、SelStart和SelText
这些属性用于对文本框中的文本进行选定操作。其中SelLength属性返回或设置所选择的字符数;SelStart属性返回或设置所选择的文本的起始点,若未选中文本,则指出插入点的位置;SelText属性返回或设置包含当前所选择文本的字符串,若未选中字符,则为零长度字符串("")。
6.TabIndex
返回或设置文本框访问“Tab”键的顺序。
7.TabStop
返回或设置一个值,指定用户是否可用“Tab”键来选定文本框。
8.Text
返回或设置文本框中的文本。
(二)文本框的常用方法
SetFocus是文本框控件的一个常用方法,用于将焦点移至文本框控件。
语法如下:
object.SetFocus,其中 object 表示文本框控件。
(三)文本框的常用事件
1.Change
当文本框的内容改变时发生此事件。
2.KeyDown、KeyUp
这些事件是当一个控件具有焦点时按下(KeyDown)或松开(KeyUp)一个键时发生的。
语法如下:
Private Sub object_KeyDown(keycode As Integer, shift As Integer) Private Sub object_KeyUp(keycode As Integer, shift As Integer)
其中 keycode是一个键代码,例如,vbKeyF1表示“F1”键,vbKeyHome表示“Home”键。shift是在该事件发生时响应“Shift”、“Ctrl”和“Alt”键的状态的一个整数。
shift 值如下:
(1)1表示“Shift”键被按下。
(2)2表示“Ctrl”键被按下。
(3)4表示“Alt”键被按下。
3.KeyPress
当用户按下和松开一个“ANSI”键时发生此事件。
语法如下:
Private Sub object_KeyPress(keyascii As Integer)
其中object表示文本框控件。keyascii是返回一个标准数字“ANSI”键代码的整数。keyascii 通过引用传递,对它进行改变可给文本框发送一个不同的字符。若将 keyascii 改变为0时,可取消击键,这样控件便接收不到字符。
为文本框设置访问键具体方法:
首先添加一个标签并在其 Caption属性中通过“&”字符指定一个访问键,然后添加一个文本框,这样标签的TabIndex属性比文本框的该属性小1,而标签不能接受焦点,使用访问键即可把焦点置于文本框中。
三、命令按钮控件
(一)命令按钮的常用属性
除了具有控件的通用属性外,命令按钮还有以下属性。
1.Cancel
返回或设置一个值,用来指示窗体中命令按钮是否为取消按钮。如果设置为 True,则命令按钮控件是取消按钮,此时可通过按“Esc”键选中该按钮;如果设置为 False(默认值),则命令按钮控件不是取消按钮。窗体中只能有一个命令按钮可以是取消命令按钮。当某个命令按钮的 Cancel 设置为 True时,其他命令按钮自动设置为 False。
2.Default
返回或设置一个值,以确定哪一个命令按钮控件是窗体的默认命令按钮。若设置为True,则该命令按钮是默认命令按钮,此时可通过按“Enter”键选中该按钮。若设置为 False (默认值),则该命令按钮不是默认命令按钮。窗体中只能有一个命令按钮可以是默认命令按钮。当某个命令按钮的 Default 设置为 True时,窗体中的其他命令按钮自动设置为False。
3.Style
返回或设置一个值,指示控件的显示类型和行为。该属性有以下设置值:0-vbButtonStandard(默认值)表示标准的没有相关图像命令按钮,1-vbButtonGraphical表示图像样式按钮,可通过 Picture属性设置在按钮中显示的图像。该属性在运行时是只读的。
4.Value
返回或设置指示该按钮是否可选的值,在设计时不可用。如果该属性为True,则表示已选择该按钮;如果为False(默认值)表示没有选择该按钮。如果在代码中设置Value属性值为True,则激活该按钮的 Click事件。
5.ToolTipText
返回或设置一个工具提示字符串。程序运行时,当光标在对象上徘徊约1秒时,该字符串将显示在该控件下面的一个小矩形框中。
(二)命令按钮的常用事件
Click事件是命令按钮的最常用事件。若要为命令按钮创建Click事件过程,在窗体上双击命令按钮控件即可。
四、单选按钮控件
单选按钮(OptionButton)控件显示一个可以打开或者关闭的选项。在单选按钮组中用一些单选按钮显示选项,用户只能选择其中的一项。在Frame控件、PictureBox控件或窗体这样的容器中绘制单选按钮控件,就可以把这些控件分组。为了在Frame或PictureBox中将单选按钮控件分组,首先绘制Frame或PictureBox,然后在其内部绘制单选按钮控件。同一容器中的单选按钮控件为一个组。
(1)在窗体上添加单选按钮后,通常需要对其以下属性进行设置。
① Alignment:返回或设置单选按钮的提示文本的对齐方式,0表示文本显示在左边, 1表示文本显示在右边。
② Caption:返回或设置单选按钮旁边的提示文本,通过设置Caption属性可以为单选按钮指定访问健。
③ Value:返回或设置单选按钮的值,指明单选按钮是否被选中。如果为 True,则表明单选按钮被选中,如果为 False,则表明单选按钮未选中。
(2)Click是单选按钮的常用事件,在以下情况下都会发生该事件。
① 用鼠标左键单击单选按钮。
② 当单选按钮具有焦点时按下空格键。
③ 把单选按钮的Value属性设置为True。
五、框架控件
框架(Frame)控件为其他控件提供可标识的分组,可以在功能上进一步分割一个窗体,例如,把单选按钮控件分成几组。
为了将控件分组,首先需要绘制一个框架控件,然后绘制框架里面的控件,这样就可以把框架和里面的控件同时移动。如果在框架外部绘制了一个控件并试图把它移到框架内部,那么控件将在框架的上部,这时需要分别移动框架和控件。
为了在框架中选择多个控件,需要在使用鼠标在控件周围绘制框时按住“Ctrl”键。框架控件的常用属性是Caption,用于设置显示在框架左上方的文本。
六、复选框控件
复选框(CheckBox)控件可以用来提供 True/False或 Yes/No选项。选择复选框控件后,该控件将呈现为对号,而清除复选框控件后,对号消失。使用复选框控件构成一个控件组可以显示多项选择,可以选择其中的一项或多项。
复选框与单选按钮控件功能相似,但二者之间也存在着重要差别:在一个窗体中可以同时选择任意数量的复选框控件。而反过来,在一个组中,在任何时侯则只能选择一个单选按钮控件。
在窗体上添加单选按钮后,通常需要设置以下属性。
1.Alignment
返回或设置复选框的提示文本的对齐方式,0表示文本显示在左边,1表示文本显示在右边。
2.Caption
返回或设置复选框控件旁边显示的文本,通过设置此属性可以为复选框指定访问键。
3.Value
返回或设置复选框控件的状态,0表示选中,1表示已选中,2表示不可用。Click是复选框的常用事件,在以下情况下都会发生该事件。
(1)用鼠标左键单击复选框。
(2)当复选框具有焦点时按下空格键。
(3)把复选框的Value属性设置为 True。
七、列表框控件
列表框(ListBox)控件用于显示项目列表,从其中可以选择一项或多项。如果项目总数超过了可显示的项目数,就自动在列表框控件上添加滚动条。
(一)列表框控件的常用属性
1.List
返回或设置控件的列表部分的项目。该属性值是一个字符串数组,数组的每个元素都是一个列表项目,对列表框控件在设计时可以通过属性窗口来设置。
2.ListCount
返回控件的列表部分项目的个数。
3.ListIndex
返回或设置控件中当前选择项目的索引,在设计时不可用。当选定列表的第一项时, ListIndex属性值为0;如果未选定项目,则ListIndex属性值是−1。ListCount属性包含项目数,其值总是比最大的ListIndex值大1。
4.SelCount
返回在列表框控件中被选中项的数量。
5.Selected
返回或设置在列表框控件中的一个项的选择状态。 该属性是一个布尔值数组,其项数与 List属性相同。在设计时是不可用的。
6.Sorted
指定控件的元素是否自动按字母表顺序排序。
7.Style
指定列表框的样式。如果该属性值为 0,则呈现为标准列表框;如果属性值为 1,则呈现为复选框式列表框,每一个文本项的边上都有一个复选框,可以选择多项。
(二)列表框控件的常用方法
1.AddItem
用于将项目添加到列表框控件,语法如下:
oList.AddItem item, index
其中oList表示列表框控件;参数item为字符串表达式,用来指定添加到该列表框的项目;参数index为整数,用来指定新项目在该列表框中的位置。对于列表框控件的首项, index为0。
如果所给出的index值有效,则item将放置在oList中相应的位置。如果省略index,则当Sorted属性设置为True时,item将添加到恰当的排序位置,当Sorted属性设置为False时,item将添加到列表的结尾。
2.RemoveItem
从列表框控件中删除一项,语法如下:
oList.RemoveItem index
其中oList表示列表框控件;参数index是一个整数,表示要删除的项在列表框中的位置。对于列表框中的首项,index为0。
八、组合框控件
组合框(ComboBox)控件将文本框控件和列表框控件的特性结合在一起,既可以在控件的文本框部分输入信息,也可以在控件的列表框部分选择一项。
组合框控件的常用属性
1.Style
用于设置组合框控件的样式。如果该属性值为0(默认值),则呈现为下拉式组合框,包括一个下拉式列表和一个文本框,可以从列表选择或在文本框中输入。如果该属性值为1,则得到一个简单组合框,包括一个文本框和一个不能下拉的列表,可以从列表中选择或在文本框中输入。如果该属性值为 2,则呈现为下拉式列表,这种样式仅允许从下拉式列表中选择。
2.Text
对于 Style属性设置为0的下拉组合框或Style属性设置为1的简单组合框,返回或设置编辑域中的文本;对于Style属性设置为2的下拉列表框,返回在列表框中选择的项目,返回值总与表达式List(ListIndex)的返回值相同。
为了添加或删除组合框控件中的项目, 需要使用AddItem或RemoveItem方法。利用List、ListCount和ListIndex属性可以实现对组合框中项目的访问。也可以在设计时使用List属性将项目添加到列表中。
九、滚动条
在项目列表很长或者信息量很大时,可以使用水平滚动条(HScrollBar)或垂直滚动条(VScrollBar)控件来提供简便的定位,还可以模拟当前所在的位置。滚动条可以作为输入设备,或者速度、数量的指示器来使用。例如,可以用它来控制计算机游戏的音量,或者查看计时处理中已用的时间。
(一)滚动条的属性
1.LargeChange
返回或设置当用户单击滚动条和滚动箭头之间的区域时滚动条控件的Value属性值的改变量。
2.SmallChange
返回或设置当用户单击滚动箭头时滚动条控件的Value属性值的改变量。
3.Max
返回或设置当滚动框处于底部或最右位置时,一个滚动条位置的 Value属性最大设置值。
4.Min
返回或设置当滚动框处于顶部或最右位置时, 一个滚动条位置的 Value属性最小设置值。
5.Value
返回或设置滚动条的当前位置,其返回值始终介于 Max和 Min属性值之间,包括这两个值。
使用滚动条作为数量或速度的指示器或者作为输入设备时,可以利用 Max和Min属性设置控件的适当变化范围。
为了指定滚动条内所示变化量,在单击滚动条时要使用 LargeChange属性,在单击滚动条两端的箭头时,要使用 SmallChange属性。滚动条的 Value属性或递增或递减,增减的量是通过LargeChange和SmallChange属性设置的值。在运行时,在0与32767之间设置Value属性的值,就可以将滚动框定位。
(二)滚动条的常用事件
Change事件是水平滚动条和垂直滚动条的常用事件。该事件在滚动条滚动时或通过代码改变Value属性的设置时发生。
十、计时器控件
计时器(Timer)控件用于背景进程中,它是不可见的。通过引发Timer事件,计时器控件可以有规律地隔一段时间执行一次代码。在一个窗体上添加多个计时器控件。
计时器控件的常用属性有如下几种。
1.Enabled
设置或返回计时器控件的有效性,该属性值为布尔值,如果设置为True,则每经过指定的时间间隔将触发Timer事件。通过把 Enabled属性设置为False可以使计时器控件成为无效,将取消由控件的Interval属性所建立的倒计数。
2.Interval
可以在设计时或在运行时设置计时器控件的 Interval属性。使用Interval属性时,应当记住:计时器控件的Enabled属性决定该控件是否对时间的推移做响应。将Enabled属性设置为False会关闭计时器控件,设置为True则打开它。当计时器控件设置为有效时,倒计时总是从其Interval属性的设置值开始。
设置计时器控件事件间隔的毫秒数。语法如下:
oTimer.Interval [= milliseconds]
其中oTimer表示计时器控件;milliseconds为数值表达式,用于指定毫秒数,如果设置为0(默认值),则使计时器控件无效。如果设置为1~65535,则对计时器控件设置一个时间间隔(以毫秒计),在计时器控件的 Enabled属性设置为True时开始有效。例如, 10000毫秒等于10秒。最大值为65 535毫秒,等于1分钟多一些。
计时器控件有一个 Timer 事件,通过对该事件创建事件过程可以告诉 VB在每次Interval到时该做什么。