教学目的及要求:
控件的分类,会利用本章控件设计程序界面
重点与难点:
1.掌握常用控件(单选钮、复选框、框架、列表框、组合框、滚动条、计时器、图片框、图像框)的常用属性、事件和方法的使用
2.进一步掌握窗体和控件事件过程代码的编写
主要外语词汇:
optionbutton、frame、listbox、combobox、scrollbar、timer、picturebox、image
授课内容:
VB的控件分为三类:内部控件、ActiveX控件和插入对象。
1、内部控件(标准控件):
指针(Point) 图片框(PictureBox)
标签(Label) 文本框(TextBox)
框架(Frame) 命令按钮(CommandButton)
复选框(CheckBox) 单选按钮(OptionButton)
组合框(ComboBox) 列表框(ListBox)
水平滚动条(HScrollBar) 垂直滚动条(VScrollBar)
定时器(Timer) 驱动器列表框(DriveListBox)
目录列表框(DirListBox) 文件列表框(FileListBox)
形状(Shape) 线条(Line)
图像框(Image) 数据(Data)
(1)它们是VB本身提供的控件,不能从工具箱中删除。
(2)打开工具箱:①工具栏 -> 工具箱 ②视图 -> 工具箱
2、ActiveX控件:
OLE:Object Linking and Embedding,对象的链接和嵌入。
ActiveX控件是VB内部控件的扩充。
只要条件允许,就能使用在不同的编程环境(如VB、VC、VFP、VJ等)中。
添加到工具箱中的方法:
(1)工程 -> 部件 -> 控件标签
(2)工具箱(右键)-> 部件 -> 控件标签
只有正确添加后才可以使用ActiveX控件。
ActiveX控件存在位置:C:/Windows/System/*.OCX
选项页(SSTab) 进度条(ProgressBar)
滑块(Slider) 动画(Animation)
Internet传输控件(Internet Transfer)
通信(Commuications) 图像列表(ImageList)
列表查看(ListView) 电子邮件(MAPI)
掩码模板(MaskedEdit) 图表(MSChart)
多媒体(Multimedia) 图像(PictureClip)
文本(RichTextBox) 状态栏(StatusBar)
检测系统事件(SysInfo) 通用对话框(CommonDialog)
3、可插入对象:
由其他应用程序创建的对象。
添加到工具箱中的方法:
(1)工程 -> 部件 -> 可插入对象标签
(2)工具箱(右键)-> 部件 -> 可插入对象标签
只有正确添加后才可以使用插入的对象。
一、单选按钮(OptionButton):选项唯一
1、属性:
(1)Name:OptionX(X=1,2,3,…)
(2)Value:为True时表示被选中,为False(默认值)时表示未被选中。
2、事件:Click事件
例题:07_1.vbp
注:若预先选定一单选按钮,应在Form_Load事件过程中将其Value属性设置为True,系统不提供默认情况。
也可以在属性窗口中进行设置。
二、复选框(CheckBox):选项不唯一
1、属性:
(1)Name:CheckX(X=1,2,3,…)
(2)Value:为0(默认值)时表示未被选中,为1时表示被选中,为2时表示暂时不能访问。
设置值 数值 常数
Unchecked 0 vbUnchecked(默认值)
Checked 1 vbChecked
Grayed 2 vbGrayed
2、事件:Click事件
例题:07_2.vbp
注:若预先选定若干复选框,应在Form_Load事件过程中将其Value属性设置为1,系统不提供默认情况。
也可以在属性窗口中进行设置。
三、框架(Frame):
作用:(1)分组:屏蔽作用 (2)美观
必须先将框架添加到窗体上,然后再将控件“画”在框架内,这样,才能达到分组的目的。
只能用单击形式,不能用双击形式。
当框架移动时,其中的控件也随着移动,删除时一并删除。
同一窗体内被框架组合的各组单选按钮是相互独立的。
1、属性:
(1)Name:FrameX(X=1,2,3,…)
(2)Caption:
2、事件:一般不需要
例题7-1:所有直接添加到窗体上的单选按钮成为一组单选按钮。
四、列表框(ListBox):
在列表框内的项目称为表项,表项的加入是按一定的顺序号进行的,这个顺序号称为索引。索引号从0开始。
1、属性:
(1)Name:ListX(X=1,2,3,…)
(2)Style:列表框的外形。
(3)List:用于存放列表框的表项,实际上是一个字符型数组。
例:Print List1.List(0)
List1.List(1)=List1.List(1) & “程序设计”
(4)ListIndex:用于设置或返回当前选定项目的索引值。
(5)ListCount:返回列表框中表项的数量。
(6)Text:对应用户在运行时选定的表项内容。
例:Private Sub List1_Click( )
If List1.Text=List1.List(0) Then …
End IfIf List1.Text=List1.List(1) Then
…
End If
End Sub(7)Columns:指定列表框中的列数。
(8)Sorted:设置列表框中的各表项在运行时是否自动按顺序排列。
①False:默认值,按输入的先后顺序排列
②True:自动排列,排序时不区分大小写
(9)MultiSelect:设置是否允许同时选择多个表项。
若允许同时选择多个表项,Text属性为选定的最后一项表项的内容。
(10)Selected:判断表项是否被选中,实际上是一个逻辑型数组。
总结:判断表项是否被选中的方法:
例:Private Sub List1_Click( )
If List1.Selected(0)=True Then Print “我选中了第一项”
If List1.ListIndex=1 Then Print “我选中了第二项”
End Sub
2、向列表框中添加表项的方法:
(1)方法一:利用属性窗口:利用List属性
每输入一项按Ctrl+Enter键换行,全部输入完后按Enter键,所输入的表项即出现在列表框中。
(2)方法二:利用代码窗口:
通常在Form_Load事件过程中添加表项,但也可以在任何时候使用AddItem方法添加表项,也就是可以动态地添加。
格式:列表框名.AddItem 表项[,索引号]
若省略索引号,则将表项插入到末尾;索引号为0表示插入到首行。
例:Private Sub Form_Load( )
ShowList1.AddItem “Germany”
List1.AddItem “India”
List1.AddItem “France”
List1.AddItem “USA”
End Sub
注:TextBox的Text属性,ListBox的List属性。
TextBox和ListBox都没有Caption属性。
例题:设计一个程序,找出100-800范围内所有能同时被3和8整除的自然数。
07_3.vbp
3、事件:Click事件、DblClick事件
双击列表框中的表项,与先选定表项然后单击命令按钮,这两者应该是具有相同的效果。
4、从列表框中删除表项的方法:
格式:列表框名.RemoveItem 索引号
删除索引号指定的某一项,索引号为0表示第一项。
5、删除所有表项的方法:
格式:列表框名.Clear
注:(1)Cls方法:将窗体、图片框对象上用Print方法显示的内容清除。
(2)Erase方法:对于静态数组,进行初始化,全部元素置0或空字符串等。
对于动态数组,释放内存空间,清除。
(3)Clear方法:将列表框、组合框中的所有表项清除。
五、组合框(ComboBox):
是文本框与列表框的组合。用户可以从文本框中输入文本,也可以从列表框中选择列表项。
区别:组合框用于建议性的选项列表,而当希望将输入限制在列表之内时,应使用列表框。
1、属性:
(1)Name:ComboX(X=1,2,3,…)
(2)Text:对应用户在运行时选定的表项内容或直接从文本框中输入的内容。
例:Private Sub Combo1_Click( )
If Combo1.Text=Combo1.List(0) Then …
End IfIf Combo1.Text=Combo1.List(1) Then
…
End If
End Sub(3)List:用于存放列表框的表项,实际上是一个字符型数组。
例:Print Combo1.List(0)
Combo1.List(1)=Combo1.List(1) & “程序设计”
(4)ListIndex:用于设置或返回当前选定项目的索引值。
(5)ListCount:返回列表框中表项的数量。
(6)Sorted:设置列表框中的各表项在运行时是否自动按顺序排列。
①False:默认值,按输入的先后顺序排列
②True:自动排列,排序时不区分大小写
(7)Style:组合框具有三种不同的类型。
0:默认值,下拉组合框(Dropdown ComBox):允许用户输入内容
1:简单组合框(Simple ComBox):允许用户输入内容
2:下拉列表框(Dropdowm ListBox):不允许用户输入内容
组合框同样可以使用AddItem、RemoveItem、Clear等方法。
2、将输入在文本框中的内容添加到列表中:
例1:Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii=13 Then
Combo1.AddItem Combo1.Text
End If
End Sub例2:Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii=13 Then
Text2.SetFocus
End If
End Sub3、事件:Click事件、DblClick事件
双击组合框中的表项,与先选定表项然后单击命令按钮,这两者应该是具有相同的效果。
但是,只有简单组合框(Style为1时)才有DblClick事件。
六、滚动条(HscrollBar和VScrollBar):
TextBox、ListBox、ComboBox等中的滚动条是系统自动加上的。
滚动条控件是为不能自动支持滚动功能的应用程序和控件提供滚动功能,也可以作为数据输入的工具。
1、属性:无Caption属性
(1)Name:HScrollX(X=1,2,3,…)
VScrollX(X=1,2,3,…)
(2)Min(左/上)、Max(右/下):最小值(默认为0)、最大值(默认为32767)
(3)Value:滚动块所处的位置所代表的值
(4)LargeChange:单击空白处时,滚动块的变化量
(5)SmallChange:单击滚动箭头时,滚动块的变化量
2、操作方式:
(1)用鼠标单击滚动箭头
(2)用鼠标单击滚动箭头与滚动块之间的空白处
(3)用鼠标拖动滚动块
3、事件:
(1)Scroll:只有鼠标拖动滚动块时才触发该事件。(1)
(2)Change:只要滚动块位置发生变化(Value值改变),即触发该事件。(1-3)
七、定时器(Timer):
在运行中每隔一定时间,触发一次Timer事件。
在设计时是可见的,在运行时是不可见的。
1、属性:
(1)Name:TimerX(X=1,2,3,…)
(2)Interval:设置时间间隔,0-65535,单位是毫秒(ms),默认值为0。
值为0时,定时器无效。最长时间间隔是60多秒(1分钟多点)。
由于系统每秒生成18个时钟信号,所以定时器每秒钟最多产生18个事件,即两个Timer事件的最小时间间隔为56ms。
(3)Enabled:为True(默认)时开始工作,为False时停止工作。
2、事件:Timer事件(唯一)
3、通常另设标签或文本框来显示时间。
例题:07_4.vbp
八、图片框(PictureBox):
1、支持的图形类型有:位图(.bmp和.dib)、图标(.ico)、图元(.wmf和.emf)、JPEG(.jpg)、GIF(.gif)等。
2、添加图片:
(1)利用Picture属性
(2)利用LoadPicture函数
3、利用AutoSize属性来调整图片框以适应图片大小:
当为True时,图片框根据图片大小自动调整,当为False(默认)时,图片框保持原尺寸,当图片比图片框大时,超出的部分被截去。
总结:容器类控件有三个:窗体(Form)、框架(Frame)、图片框(PictureBox)。
容器类控件的作用:分组。
九、图像框(Image):
1、支持的图形类型有:位图(.bmp和.dib)、图标(.ico)、图元(.wmf和.emf)、JPEG(.jpg)、GIF(.gif)等。
2、添加图片:
(1)利用Picture属性
(2)利用LoadPicture函数
3、利用Stretch属性可以改变图片的大小使之适应控件的大小:
当为True时,将自动缩放图片以适应图像框的大小,当为False(默认)时,将放大图像框以适应图片的大小。
注:PictureBox的AutoSize属性与Image的Stretch属性类似。
总结:
1、相同点:
(1)都可以显示图形,并且图形类型完全相同。
(2)添加图片的方法相同。
(3)利用编辑 -> 粘贴(Ctrl+V),可以将剪贴板中的图形加载进来。
(4)都支持Click事件,可以代替命令按钮。
2、不同点:
(1)图片框还可以作为其他控件的容器。
(2)图像框只支持图片框的一部分属性、方法和事件,图片框的功能更强。
(3)图像框使用系统资源少,而且重新绘图速度快。
(4)图像框可以改变图片的大小使之适应控件的大小。
(5)图片框支持Print方法。
(6)图片框支持SetFocus方法,可以接受焦点。
辅助教学情况:
多媒体课件
复习思考题、作业题:
如果要计时器每秒钟发生4个Timer事件,则Interval属性应设多少?
教材习题七 1、2、3、4、5
参考教材或资料:
《Visual Basic程序设计教程》,刘炳文 许蔓舒 编著,清华大学出版