第六章常用标准控件
教学要求:
熟练掌握运用文本框控件、标签控件文本框和命令按钮控件进行编程;熟练掌握图片框、图像框的属性、事件和方法,掌握图形文件的装入的不同方法;掌握复选框和单选按钮的属性、事件和方法;掌握列表框和组和框的属性、事件和方法;能够使用计时器控件编程;了解滚动条控件的属性、事件和方法;理解框架控件的作用,能够使用直线和形状控件;理解焦点和Tab顺序的概念。
知识点:
标签和文本框控件,图片框、图像框的属性、事件和方法,图形文件的装入,直线和形状,按钮控件,复选框和单选按钮,列表框和组合框,滚动条,计时器,框架、直线和形状,焦点与Tab顺序。
内容导航:
一、文本控件
与文本有关的标准控件有标签和文本框。程序运行时标签中只能显示文本,用户不能进行编辑,而在文本框中既可显示文本,又可输入文本。
(一)标签
1.标签的属性
标签的部分属性与窗体及其他控件相同,包括:FontBold、FontItalic、FontName、FontSize 、FontUnderline 、Height、Left 、Name 、Top 、V isible、Width。
2.标签的事件和方法
标签和窗体及大多数控件一样具有许多方法,如Move方法、Drag方法以及Refresh方法;并且可以识别多种事件,如Click、DblClick等。
(二)文本框
文本框是一个文本编辑区域,在设计阶段或运行期间可以在这个区域中输入、编辑和显示文本,类似于一个简单的文本编辑器。
1.文本框属性
支持的属性除标准属性外,还有Text、Maxlength、Multiline 等属性。
2.文本框的事件
支持Change、GotFocus、LosttFocus和SetFocus事件
二、图形控件
Visual Basic中与图形有关的标准控件有4种,即图片框、图像框、直线和形状。(一)图片框和图像框
1.与窗体属性相同的属性
2.CurrentX和CurrentY属性
设置水平和垂直坐标,只能在运行期间使用
3.Picture属性
用于窗体、图片框、图像框,通过属性窗口设置,把图片放入这些对象中。4.Stretch属性
用于图像框,自动调节图像框中图形内容的大小。
(二)图形文件的装入
1.图片框与图像框的区别
图片框是容器,可以作为父控件,而图像框不能作为父控件;图片框可以通过Print方法接受文本,图像框则不能;图像框比图片框占用的内存少,显示速度快。
2.在设计阶段装入图形文件
可以用两种方法装入图片,一是用属性窗口的Picture属性装入;二是利用剪贴板把图形粘贴到窗体、图片框、图像框。
3.在运行期间装入图形文件
用LoadPicture函数把图形文件装入窗体、图片框、图像框。一般格式为:
[对象.] Picture=LoadPictur(“文件名”)
(三)直线和形状
支持的属性除标准属性外,还有BorderColor、BorderStyle 、BorderWidth、FillColor 、FillStyle和Shape等属性。
三、按钮控件
在应用程序中,命令按钮通常用来在单击时执行指定的操作。支持的属性除标准属性外,还有以下属性:.Cancel、Default、Style、Picture、DownPicture和DisabledPicture属性等。
四、选择控件-复选框和单选按钮
在应用程序中,复选框和单选按钮用来表示状态,可以在运行期间改变其状态。它支持的属性除标准属性外,还有以下属性:V alue、Alignment和Style属性。
五、选择控件-列表框和组合框
(一)列表框
1.属性
列表框所支持的属性除标准属性外,列表框还具有以下特殊属性:Columns、List、ListCount、ListIndex、MultiSelect、Selected、SelCount、Sorted、Style、Text。
2.列表框事件
列表框接收Click和DblClick事件。
3.列表框方法
列表框可以使用AddItem、Clear和RemoveItem等方法,用来在运行程序期间修改列表框的内容。
(二)组合框
组合框(ComboBox)是由列表框和文本框的特性组合而成的控件。或兼有列表框和文本框两者特性的控件。
1.组合框属性
列表框的属性基本上都可用于组合框,此外它还有自己的一些属性,如Style、Text。Style的值决定组合框3种类型,分别为下拉式组合框、简单组合框和下拉式列表框。2.组合框事件
只有简单组合框接收DblClick事件,其他两种组合框可以接受Click事件和DropDown 事件。
六、滚动条
滚动条通常用来附在窗口上帮助观察数据或确定位置,也可用来作为数据输入的工具。滚动条分为两种,即水平滚动条和垂直滚动条。
1.滚动条属性
滚动条的属性用来标识滚动条的状态,有以下属性:Max、Min、LargeChange、SmallChange、V alue。
2.滚动条事件
与滚动条有关的事件主要是Scroll和Change。
七、计时器
计时器的重要属性是Interval,用来设置计时器事件之间的间隔,以毫秒为单位,其取值范围为0-65535毫秒。
八、框架
框架(Frame)是一个容器控件,用于将屏幕上的对象分组。
框架的属性包括Enabled、FontBold、FontName、FontUnderline、Height、Left、Top、Visible、Width。此外,Name属性用于在程序代码中标识一个框架,而Caption属性定义了框架的可见文字部分。
九、焦点与Tab顺序
(一)设置焦点
用下面的方法可以设置一个对象的焦点:
1.在运行时单击该对象;
2.运行时用快捷键选择该对象;
3.在程序代码中使用SetFocus方法。
(二)Tab顺序
所谓Tab顺序,就是指焦点在各个控件之间移动的顺序。用Tab键也可以把焦点移到某个控件中。每按一次Tab键,可以使焦点从一个控件移到另一个控件。
训练:
一、选择题
1.在程序代码中清除当前窗体中的图形,以下不正确语句是________。
A) Picture=””B) Picture=LoadPicture()
C) Picture=LoadPicture(””)D) Me.Picture=LoadPicture()
2.为使得图像框的大小可以自动适应图像的大小,以下正确的设置是________。
A) 将AutoSize属性值设置为True B) 将AutoSize属性值设置为False
C) 将Stretch属性值设置为True D) 将Stretch属性值设置为False
3.在下面4组图形格式中,全部是V isual Basic支持的图形文件是________。
A) 位图、图标、3DS图形文件、GIF文件
B) 位图、图标文件、Flash图形文件、GIF文件
C) 位图、3DS图形文件、Flash图形文件、GIF文件
D) 位图、图标、图元文件、JPEG文件、GIF文件
4.下面关于图片框和图像框的说法中正确的是________。
A) 在图像框里只能显示图片,不能包含其他控件,而图片框可以包含控件
B) 图像框和图片框均可通过Print方法显示文本
C) 图像框和图片框占用的内存多、运行速度慢
D) 在图像框和图片框中显示的图片均可放大和缩小
5.要在形状控件Shape1中填充一种图案,可设置它的________属性。
A) BorderColor B) BorderStyle C) FillStyle D) FillColor
6.文本框没有________属性。
A) Enabled B) V isible C) BackColor D) Caption
7.能够获得一个文本框中被选取文本的内容的属性是________。
A) Text B) Length C) SelStart D) SelText
8.在文本框中,当用户键入一个字符时,能同时引发的事件是________。
A) KeyPress和Click B) KeyPress和LostFocus
C) KeyPress和Change D) Change和LostFocus
9.以下能够触发文本框Change事件的操作是________ 。
A) 文本框失去焦点B) 文本框获得焦点
C) 设置文本框的焦点D) 改变文本框的内容
10.若要使标签控件显示时不覆盖其背景内容,要对________属性进行设置。
A) Backcolor B) BorderStyle C) ForeColor D) BackStyle
11.Lable控件中显示的文字,是由________属性决定的。
A) Text B) Caption C) Name D) ForeColor
12.为了使标签Label1显示文字”姓名”,可把Label1的________属性设置为”姓名”。
A) Caption B) Text C) Word D) Name
13.假定窗体上有一个标签,名为Label1,为了使该标签透明并且没有边框,则正确的属性设置为________。
A) Label1.BackStyle=0
Labrl1.BorderStyle=1
B) Label1.BackStyle=0
Label1.BorderStyle=0
C) Label1.BackStyle=True
Labrl1.BorderStyle=True
D) Label1.BackStyle=False
Labrl1.BorderStyle=False
14.要使文本框在显示文字时,只显示出来一串”*”号,则应把它的________属性设置为”*”号。
A) Caption B)PasswordChar C) Text D) V alue
15.以下不属于标签属性的是________。
A) Font B) V alue C) Caption D) Index
16.使用文本框显示文字时,只能显示8个字符,则需设定它的________属性为8。
A) Caption B)PasswordChar C) MaxLength D) V alue
17.设置复选框或单选按钮的标题对其方式的属性是________ 。
A) Align B) Style C) Alignment D) Sorted
18.复选框的V alue属性为0时,表示________。
A) 复选框未被选中B) 复选框被选中
C) 复选框内有灰色的勾D) 复选框操作有错误
19.为了在按下Esc键时执行某个命令按钮的Click事件过程,需要把该命令按钮的一个属性设置为True,这个属性是________。
A) V alue B) Cancel C) Default D) Enabled
20.当某个单选按钮处于选中状态,它的________属性为True。
A) Alignment B) V alue C) Style D) Checked
21.复选框的状态可通过设置它的________属性来设置它的状态。
A) Alignment B) V alue C) Style D) Checked
22.为了在列表框中使用Ctrl和Shife功能键进行多个列表项的选择,应将列表框的Multiselect属性设置为________。
A) 0 B) 1 C) 2 D) 3
23.为使得列表框中的列表项显示为复选框形式,可将Style属性设置为________。
A) 0 B) 1 C) True D) False
24.在列表框中当前被选中的列表项的序号是由________属性表示的。
A) List B) ListCount C) ListIndex D) Index
25.将数据项Visual Basic 6.0添加到列表框(List1)中成为第一项应使用语句为________。
A) List1.AddItem ”Visual Basic 6.0”,0
B) List1.AddItem ”V isual Basic 6.0”,1
C) List1.AddItem 0,”Visual Basic 6.0”
D) List1.AddItem 1,”Visual Basic 6.0”
26.执行了以下的程序后,列表框中的数据项有________。
Sub Form_click()
For i=1 To 4
List1.AddItem i
Next
For i=1 To 2
List1.RemoveItem i
Next
End sub
A) 1,2 B) 1,3 C) 1,4 D) 2,4
27.在窗体上画一个列表框和一个文本框,然后编写如下两个事件过程:
Private Sub Form_Load()
List1.AddItem "357"
List1.AddItem "246"
List1.AddItem "123"
List1.AddItem "456"
Text1.Text=""
End Sub
Private Sub List1_DblClick()
a=List1.Text
Print a+Text1.Text
End Sub
程序运行后,在文本框中输入”789”,然后双击列表框中的”456”,则输出结果为________。
A) 1245 B) 456789 C) 789456 D) 0
28.列表框的________属性代表着列表框中项目的数目。
A) List B) ListIndex C) LIstCount D) Seleted
29.当文本框的ScrollBars设置了非零值,确没有效果,原因是________。
A) 文本框中没有内容B) 文本框的MultiLine属性为False
C) 文本框的MultiLine属性为True D) 文本框的Locked属性为False
30.单击滚动条的箭头时,产生的事件是________。
A) Scroll B) Change C) A)和B) D) Move
31.在程序运行期间,如果拖动滚动条上的滚动块,则触发的滚动条事件是________。A) Move B) Change C) Scroll D) GetFocus
32.滚动条的________属性表示当滑块处于滚动条最大位置是所代表的值,其范围为-32768~+32767
A) Max B) V alue C) SmallChange D) LargeChange
33.在窗体上有一个文本框控件,名称为TxtTime;一个计时器控件,名称为Timer1,要求每一秒钟在文本框中显示一次当前的时间。程序为:
Private Sub Timer1_ ________()
TxtTime.Text=Time
End Sub
A) Enabled B) V isible C) Interval D) Timer
34.为了暂时关闭计时器,应把该计时器的某个属性设置为False,这个属性是________。
A) Visible B) Timer C) Enabled D) Interval
35.当对象失去焦点时,将会发生________事件。
A) GetFocus B) LostFocus C) Focus D) SetFocus
36.不论哪种控件,共同具有的是________ 属性。
A) Text B) Name C) ForeColor D) Caption
37.要使某控件在运行是不可显示,应对属性________进行设置。
A) Enabled B) V isible C) BackColor D) Caption
二、填空题
1.已知窗体中有一个图片框,名为Pic1,现在要把图形文件”D:\A1.BMP”显示在该控件中,使用的语句是________________________________。
2.为了在运行时把图形文件picfile.jpg装入图片框Picture1,所使用的语句为__________________________________。
3.为了能自动放大或缩小图像框中的图形以便于图像框的大小相适应,必须把该图形框的Stretch属性设置为____________。
4.当对命令按钮的Picture属性装入.bmp图形文件后,选项按钮上并没有显示所需的图形,原因是没有对________属性设置为1(Graphical)。
5.在窗体中有两个文本框控件Text1和Text2,焦点在Text2中,现在要把焦点移到Text1中,应使用的语句是_____________________。
6.要把Label控件中显示的文字颜色设置为红色,应设置Label控件的___________属性。7.要把Label控件的背景设置为透明,可把该控件的__________属性设置为________。8.要使文本框可以显示多行文本,应把文本框的__________属性设置为True。
9.文本框的__________属性用来表示文本框中被选定的字符长度。
10.文本框的__________属性用来设置在文本框中显示的最多字符个数。
11.文本框中的内容改变时,将会发生____________事件。
12.列表框中项目的序号是从________开始的,______________表示列表框中最后一项的序号。
13.组合框是组合了文本框和列表框的特性而形成的一种控件。_____________风格的组合框不允许用户输入列表框没有的项。
14.列表框中的____________和__________属性为数组。
15.要使列表框中的选项能时选中多个,应设置列表框的__________属性。
16.列表框的______________决定列表框中项目在程序运行期间是否按字母顺序排列,如果该属性为True,则按字母顺序排列显示,为False则按项目加入的先后顺序排列显示。17.可使用列表框的_____________方法向列表框中增加一个项目。
18.组合框有三种不同的风格:下拉式组合框、______________ 和下拉式列表框。可通过___________属性来设置。
19.滚动条响应的重要事件有______________和______________。;
20.滚动条的____________属性表示滚动条内滑块所处位置所代表的值。
21.如果要求每隔15秒钟激发一次计算器事件,应将Interval属性设置为__________。22.在程序运行时,如果将框架的____________属性设为False,则框架的标题成灰色,表示框架内的所有对象均被屏蔽,不允许用户对其进行操作。
23.要使形状控件显示出一个矩形,可设置它的____________属性。
24.所谓Tab顺序,就是指___________在各个控件之间移动的顺序。
25.当原对象被拖动到目标对象上方时,在目标对象上将引发____________事件,释放时又会引发____________事件。
三、程序阅读题
1.在窗体上画一个文本框和一个图片框,然后编写如下两个事件过程,程序运行后,在文本框中显示的内容是什么?在图片框中显示的内容是什么?
Private Sub Form_Load()
Text1.Text="计算机"
End Sub
Private Sub Text1_Change()
Picture1.Print "文化基础"
End Sub
2.窗体上有一按钮和一个列表框,执行下列程序,写出运行结果。
Private Sub Command1_Click()
List1.AddItem "China"
List1.AddItem "USA"
List1.AddItem "Japan",1
Print List1.List(2)
End Sub
四、程序填空题
1.在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,程序运行后,Command1为禁用(灰色)。当向文本框中输入任何字符时,命令按钮Command1变为可用。请在空白出添入适当的内容,将程序补充完整。
Private Sub Form_Load()
Command1.Enabled=False
End Sub
Private Sub Text1【1 】
Command1.Enabled=True
End Sub
2.下面的程序运行时,用户在组合框中输入数据,当按回车键时,如果组合框列表中没有与输入内容相同的选项,则将输入内容添加到列表中。阅读程序并填空。
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Dim addtext As Boolean
If KeyAscii = 13 Then
addtext = False
For i = 【1 】
If Combo1.Text = Combo1.List(i) Then
addtext = True
End If
Next
If Not addtext Then 【2 】t
Combo1.Text = ""
End If
End Sub
3.在窗体上画一个名称为label1和标签和一个名称为List1的列表框。程序运行后,在列表框中添加若干列表项。当双击列表框中的某个项目时,在标签Label1中显示所选中的项目。请在空白出填入适当的内容,将程序补充完整。
Private Sub Form_Load()
List1.AddItem ”北京”
List1.AddItem ”上海”
List1.AddItem ”河北”
End Sub
Private Sub【1 】
Label1.Caption=【2 】
End Sub
4.在窗体中建立一个文本框,名字为txtVB,用来输入和显示文字。再建立两个框架,名字为”字体”和”大小”,然后在”字体”框架中建立两个单选钮,名字分别为”optSong”和”optHi”;在”大小”框架中建立两个单选钮,名字分别为”optEight”和”optTwelve”。在窗体中还有一个名为”CmdOK”的按钮,当选中相应字体和大小后,按确定按钮,文本框中的内容将以指定的格式显示。运行时的界面如图5-5所示。请填程序使它完整。
Private Sub CmdOK_Click()
If 【1 】Then
TxtVB.FontName="宋体"
Else
txtVB.FontName="黑体"
End If
If 【2 】Then
txtVB.FontSize=8
Else
txtVB.FontSize=12
End If
End Sub
5.编写一个对列表框进行项目添加、修改和删除操作的应用程序。列表框(名为lstBoods)中的选项在Form_Load事件中加载,添加按钮(cmdAdd)的功能是将文本框(txtItem)中的内容添加到列表框中,删除按钮(cmdDelete)的功能是删除列表框中选定的项目。如果要修改列表框,可先选定选项,然后按修改按钮(cmdModify),所选的项目显示在文本框(txtItem)中,当在文本框中修改完之后,按确定修改按钮(cmdModify_OK)将更新列表框。初始时,修改确定按钮是不可使用的。程序代码如下,请填空。
Private Sub CmdAdd_Click()
LstBooks. 【1 】Txtitem
Txtitem=""
End Sub
Private Sub CmdDelete_Click()
LstBooks.RemoveItem【2 】
End Sub
Private Sub CmdModify_Click()
Txtitem=LstBooks.Text
Txtitem.SetFocus
CmdAdd.Enabled=False
CmdDelete.Enabled=False
CmdModify.Enabled=False
Cmdmodify_OK.Enabled=【3 】
End Sub
Private Sub Cmdmodify_OK_Click()
LstBooks.List(【4 】)=Txtitem
Cmdmodify_OK.Enabled=False
CmdAdd.Enabled=True
CmdDelete.Enabled=True
CmdModify.Enabled=True
Txtitem=""
End Sub
Private Sub Form_Load()
LstBooks.AddItem"计算机文化基础"
LstBooks.AddItem"VB 5.0程序设计教程"
LstBooks.AddItem"操作系统"
LstBooks.AddItem"多媒体技术"
LstBooks.AddItem"网络技术基础"
End Sub
6.以下是一个程序实例,该实例显示一系列的角度逐渐变化的地球图片(图片名为earth0.jpg~earth7.jpg),共显示出100幅图片,从而形成地球转动动画。用VB设计一个窗体,窗体上放置一个图片框,名为Image1(Strech=.T.),给窗体加一个定时器控件,控件名为Timer1(Interval=25,Enabled=.t.),该项目存放在A:\exam下,图片文件存放在A:\EXAM1\PIC 下面。请填空。
Dim t1 As Integer
Private Sub Form_Click()
t1=0 't1纪录时钟事件发生的次数
End Sub
Private Sub Timer1_Timer()
【1 】
If t1<100 Then '图片共显示100幅
current=t1 Mod 8 'current表示当前应该显示那张图片
FileName$="A:\exqm\pic\earth"¤t&".jpg"'图片文件名(绝对路径)
Image1.Picture=【2 】'显示图片
Else
End '程序结束
End If
End Sub
五、编程题
1.在窗体上画1个命令按钮,宽度为1500,高度为500,标题为"显示"。编写适当的事件过程,程序运行后,如果单击"显示"命令按钮,则在窗体上显示"祝你考试成功"。
2.在窗体上画Text1、Text2和Text3三个文本框,和1个标题为"计算"的命令按钮。编写适当事件过程,程序运行后在Text1和Text2中分别输入两个整数,单击"计算"按钮后,可把两个整数之间的所有整数(含着两个整数)累加起来并在Text3中显示出来。
3.在窗体上画1个列表框,1个文本框,和1个命令按钮,标题为"复制"。编写适当事件过程,程序运行后,在列表框中自动建立四个列表项,分别为"Item1"、"Item2"、"Item3"、"Item4"。如果选择列表框中的一项,则单击"复制"按钮时,可以把该项复制到文本框中。
4.在窗体上画1个计时器,其Stretch 属性值为True ;画1个图像框,通过其Picture 属性加载;再画1个水平滚动条,其Min 和Max 属性值分别为100、1200,Smallchange 和Largechange 属性值分别为25和100。编写适当事件过程,程序运行后,可以使图像框闪烁,其闪烁程度可以通过滚动条调节。
运行界面
设计界面