VB程序设计 第七章常用控件.docx
《VB程序设计 第七章常用控件.docx》由会员分享,可在线阅读,更多相关《VB程序设计 第七章常用控件.docx(76页珍藏版)》请在冰豆网上搜索。
VB程序设计第七章常用控件
第七章常用控件
主要内容
●单选按钮和复选框(OptionButton,CheckBox)
●框架(Frame)
●列表框和组合框(ListBox,ComboBox)
●滚动条(HScrollBar,VscrollBar)和Slider控件
●时钟(Timer)
●ProgressBar控件
●UpDown控件
●Animation控件
●SSTab控件
●鼠标器和键盘,拖动
目前VB中可使用的控件有许多,大致可分为三类:
标准控件、ActiveX控件和可插入对象。
1.标准控件
标准控件也称为内部控件,保准控件总是出现在工具箱中,一共有20个。
2.ActiveX控件
ActiveX控件是四种ActiveX部件之一。
ActiveX控件只有32位版本。
ActiveX部件:
是可以重复使用的编程代码和数据是由用ActiveX技术创建的一个或多个对象所组成的。
ActiveX部件文件:
扩展名OCX(OLECustomControls称为自定义的OLE控件的简称),在Windows的SYSTEM目录中。
常用ActiveX控件所在的文件
ActiveX控件
ActiveX部件
文件名
通用对话框
(CommonDialog)
MicrosoftCommonDialogControl6.0
comdlg32.ocx
ToolBar
MicrosoftWindowsCommonControl6.0
Mscomctl.ocx
StatusBar
ProgressBar
Slider
Animation
MicrosoftWindowsCommonControl-26.0
Mscomct2.ocx
UpDown
用户在使用ActiveX控件之前,需先将它们加载到工具箱中,方法是:
①选择“工程”菜单中的“部件”命令,(或在工具箱中单击再弹出的快捷菜单中选择“部件”)弹出“部件”对话框。
在该对话框中包含了全部登记的ActiveX控件。
②选定所需的ActiveX部件左边的复选框
③最后单击确定按钮。
如果要将其他目录中的控件加入到工具箱,则应通过“浏览”按钮去寻找扩展名为.OCX的文件。
除了ActiveX控件之外,ActiveX部件中还有被称为代码部件的ActiveX.DLL和ActiveX.EXE。
他们向用户提供了对象形式的库。
在程序设计时,通过对其他应用程序对象库的引用,可极大的扩展应用程序的功能。
ActiveX控件与ActiveXDLL/EXE的区别
ActiveX控件
ActiveX.DLL/EXE
有界面
没有界面
用“工程/部件”命令加载
用“工程/引用”设置引用
工具箱上有图标
工具箱上没有图标
3.可插入对象
可插入对象是Windows应用程序的对象,例如:
MicrosoftExcel工作表。
可插入对象可添加到工具箱中,具有同标准控件类似的属性,可以同标准控件一样使用。
可通过工程-〉部件-〉可插入对象选项卡实现加载可插入对象。
7.1单选钮
和复选框
1.重要属性
Caption属性
设置单选按钮或复选框的文本标题。
击按钮边上文本的标题,系统默认单选按钮标题为OptionX复选框按钮标题为CheckX。
Alignment属性
0:
控件钮在左边,标题显示在右边。
系统默认0
1:
控件钮在右边,标题显示在左边。
Value属性
单选钮(逻辑型)复选框(数值型)
单选按钮
Value=True表示选定Value=False表示未选定
复选框
Value=0(或Unchecked)表示未被选定,Value=1(或Checked)表示选定,Value=2(或Grayed)按钮呈灰色,表示禁止选择
Style属性
用于改善按钮的视觉效果,该属性为只读属性,只能在属性窗口设置。
0--Standard:
表示按钮为标准方式;1--Graphical:
表示按钮可加载图形方式,可以通过Picture属性加载图片。
2.事件
单选按钮和复选框都能接收Click事件,但一般不需编写Click事件过程。
因为当用户单击时,按钮自动改变状态。
除此之外,它们还可接受很多事件,具体可通过它们的代码窗口中的事件下拉列表框查看。
[例7.1]用单选钮和检查框设置文本框。
[例7.1]在myvb\vb7\ex7_1\lbc7_1.vbp
PrivateSubCommand1_Click()
Text1.Font=Switch(Option1.Value,"宋体",Option2.Value,"黑体",_
Option3.Value,"楷体",Option4.Value,"隶书")
Text1.FontBold=IIf(Check1.Value=1,True,False)
Text1.FontItalic=IIf(Check2.Value=1,True,False)
Text1.FontStrikethru=IIf(Check3.Value=1,True,False)
Text1.FontUnderline=IIf(Check4.Value=1,True,False)
EndSub
PrivateSubForm_Load()
Option1.Caption="宋体"
Option2.Caption="黑体"
Option3.Caption="楷体"
Option4.Caption="隶书"
Check1.Caption="粗体"
Check2.Caption="斜体"
Check3.Caption="删除线"
Check4.Caption="下划线"
Form2.Caption="单选按钮和复选框示例"
Command1.Caption="确定"
Text1.FontSize=14
Text1.Text="VB特点:
可视化的软件开发工具;面向对象的程序设计方法;"_
&"采用事件驱动的编程机制;结构化的程序设计语言。
除此而外,还有应用程序接口(API);"_
&"动态数据交换(DDE);对象的链接与嵌入(OLE)和动态链接库(DLL)等特点。
"
EndSub
7.2框架
(Frame)
框架内控件的创建方法:
方法1:
单击工具箱上的工具,然后用出现的“+”指针,在框架中适当位置拖拉出适当大小的控件。
(不能使用双击工具箱上图标的自动方式。
)
方法2:
将窗体中现有控件移到框架中则是,先选定控件然后将其“剪切”到剪贴板,再粘贴(Ctrl+V)到框架中。
框架内的所有控件将随框架一起移动、显示、消失和屏蔽。
1.重要属性
Caption属性框架标题
Enabled属性
False标题呈灰色,不允许对框架内的对象进行操作。
Visible属性
True,框架及其控件可见;False,框架及其控件被隐含起来。
2.事件
框架可以响应Click和DblClick等事件。
但是在应用程序中一般不需要编写有关框架的事件过程。
除此之外,它还可接受很多事件,具体可通过它的代码窗口中的事件下拉列表框查看。
[例7.2]在窗体中建立四组单选按钮,分别放在标题为“字体”、“大小”、“背景色”和“前景色”的框架中。
因此当选定了字体后,还可以选择字号等。
[例7.2]在myvb\vb7\ex7_2\lbc7_2.vbp
PrivateSubCommand1_Click()‘确定按钮单击事件
Text1.Font=Switch(Option1.Value,"宋体",Option2.Value,"黑体",_‘字体设置
Option9.Value,"楷体",Option10.Value,"华文行楷")
Text1.FontSize=IIf(Option3.Value,"10","14")‘字号设置
Text1.ForeColor=IIf(Option5.Value,RGB(255,0,0),RGB(0,0,255))
Text1.BackColor=Switch(Option7.Value,RGB(0,0,0),Option8,RGB(0,255,0),_
Option11,RGB(255,255,255),Option12,RGB(255,128,0))‘背景色设置
EndSub
PrivateSubCommand2_Click()‘退出
End
EndSub
PrivateSubForm_Load()
Form2.Caption="框架用法示例"
Frame1.Caption="字体":
Frame2.Caption="字号"
Frame3.Caption="前景色":
Frame4.Caption="背景色"
Option1.Caption="宋体":
Option2.Caption="黑体"‘字体
Option9.Caption="楷体":
Option10.Caption="行楷"
Option3.Caption="18":
Option4.Caption="20"‘字号
Option5.Caption="红色":
Option6.Caption="蓝色"
Option7.Caption="黑色":
Option8.Caption="绿色"‘背景色
Option11.Caption="白色":
Option12.Caption="浅红"
Command1.Caption="确定":
Command2.Caption="结束"
Text1.Text="VB6.0有三种版本:
"&vbCrLf&"学习版(标准版)。
"&vbCrLf&"专业版(为专业人员创建基于客户/服务器运行程序而设计,"_
&vbCrLf&"包含学习版全部功能连同ActiveX和Internet控件)。
"_
&vbCrLf&"企业版(基于专业软件开发人员,为创建更高级的分布式、"&vbCrLf&"高性能的客户/服务器或Internet/Intranet"&vbCrLf&"上的运行程序而设计的)。
"
Option1.TabIndex=0'使启动焦点落在按钮1上,同时该按钮也被选中
'以下三条语句使每个框架内有一个单选按钮被默认选定,注意:
以下不能再用TabIndex属性来选定按钮了
Option3.Value=True:
Option5.Value=True:
Option7.Value=True
EndSub
7.3列表框
和组合框
列表框(ListBox)
通过显示多个选项,供用户选用,达到同用户对话的目的。
如果有较多的选项而不能一次全部显示完,VB会自动加上滚动条,只能从中选择不能修改其中内容。
组合框(ComboBox)
它是组合了文本框和列表框的特性而形成的一种控件。
组合框在列表框中列出可供用户选择的选项,当选择了某项后,该项内容自动装入文本框中。
当列表框中没有所需选项时,除了下拉列表框的style属性为2之外都允许在文本框中用键盘输入,但输入的内容不能自动添加到列表框中。
有三种不同的组合框:
下拉式组合框(style=0默认)、简单组合框(style=1,在建立具有该属性组合框时一定要使它的高度适当)和下拉式列表框(style=2)。
Style属性只能在设计时使用。
1.列表框和组合框共有的重要属性
①List
该属性是一个字符数组,存放列表框和组合框的选项。
它的下标从0开始。
list属性既可在设计状态中设置,也可在程序中设置或引用。
②ListIndex
该属性只能在程序中设置和引用。
ListIndex的值表示程序运行时被选定的选项的序号。
它实际就是属性List数组的数组元素的下标。
如果未选中任何选项,则ListIndex=-1
③ListCount
该属性只能在程序中设置和引用。
ListCount的值表示列表框或组合框中项目的总数量。
而ListCount-1表示最后一项的序号。
实际就是属性List数组元素的个数。
④Sortde
该属性只能在设计状态中设置。
Sortde属性表示程序运行期间列表框或组合框的选项是否按字母顺序排列显示。
True,按字母顺序;False,按选项加入先后顺序排列。
⑤Text
该属性是默认属性,只能在程序中设置或引用。
Text属性是被选定的选项的文本内容。
说明:
在设计时,列表框属性窗口没有Text属性(但只要打开List属性就可清除设计时列表框内显示listx字样,不这样做,运行时自动清除listx字样);而组合框属性窗口则有Text属性列出(在设计时,对于Style=0,1,可在此属性内清除组合框内显示的Combox字样,而Style=2,则无法用此法清除组合框内显示的Combox字样,但运行时自动清除)。
注意:
List1.Text与List1.List(List1.ListIndex)相等
2.列表框的重要属性
① MultiSelect
在默认状态下,在一个列表框中只能选择一项。
当MultiSelect为1和2可多向选择。
0-None:
禁止多项选择。
1-Simple:
简单多项选择。
当单击鼠标或按空格键表示选定或取消一个选项。
2-Extended:
扩展多项选择。
不连续选:
按住Ctrl键,同时用鼠标单击或按空格键表示选定或取消一个选项;连续选:
按住Shift键,同时单击鼠标,或按住Shift键并且移动光标键,就可从前一个选定的项扩展到当前选择项,即选定多个连续项。
② Selected
该属性只能在程序中设置和引用。
Selected属性是一个逻辑数组,其元素对应列表框中相应的项,表示对应的项在程序运行期间是否被选中。
Selected(i)的值为True表示第i项被选中。
i从0开始计。
3.组合框的重要属性
① Style(只读属性)
Style属性决定组合框的类型和行为,它的值为0(默认),1或2。
[补例7.3b1]三种形式的组合框(0下拉式组合框,1简单组合框2下拉式列表框)
[补例7.3b1]在myvb\vb7\ex7_3b1\lbc7_3b1.vbp
PrivateSubCombo1_Change()'下拉式组合框可以输入新内容,但不保存
Text1.Text=Combo1.Text
EndSub
PrivateSubCombo1_Click()'显示在下拉式组合框内选择的内容
Text1.Text=Combo1.Text
EndSub
PrivateSubCombo2_Click()'显示在简单组合框内选择的内容
Text1.Text=Combo2.Text‘与Text1.Text=Combo2.List(Combo2.ListIndex)等价
EndSub
PrivateSubCombo2_Change()'简单组合框也可以输入新内容,但不保存
Text1.Text=Combo2.Text
EndSub
PrivateSubCombo3_Click()'下拉式列表框不能输入新内容
Text1.Text=Combo3.Text
EndSub
PrivateSubCommand1_Click()‘组合框的style属性只能在设计状态使用
IfOption1.ValueThenCombo1.Visible=True:
Combo2.Visible=False:
Combo3.Visible=False
IfOption2.ValueThenCombo1.Visible=False:
Combo2.Visible=True:
Combo3.Visible=False
IfOption3.ValueThenCombo1.Visible=True:
Combo2.Visible=False:
Combo3.Visible=True
IfOption1.ValueThenLabel1.Caption="下拉式组合框式样(0)"
IfOption2.ValueThenLabel1.Caption="简单组合框式样
(1)"
IfOption3.ValueThenLabel1.Caption="下拉式列表框式样
(2)"
EndSub
PrivateSubForm_Load()
DimxAsObject,i%
Form2.Caption="三种类型组合框演示"
Option1.Caption="下拉式组合框"+Chr(13)+"(可添新项)"
Option2.Caption="简单组合框"+Chr(13)+"(可添新项)"
Option3.Caption="下拉式列表框"+Chr(13)+"(不可添新项)"
Command1.Caption="确定"
Fori=1To3‘设计时,将三种类型的组合框重叠在一起,给三种组合框的LIST属性赋值
Setx=Choose(i,Combo1,Combo2,Combo3)'指定某个对象送给对象变量
Withx
.List(0)="李白":
.List
(1)="李商隐"
.List
(2)="王之焕":
.List(3)="白居易"
.List(4)="杜甫":
.List(5)="范大成"
.List(6)="陆游":
.List(7)="欧阳修"
.List(8)="王勃":
.List(9)="王安石"
.List(10)="苏东波":
.List(11)="岳飞"
.List(12)="贾岛":
.List(13)="杜牧"
EndWith
Nexti
Combo1.Visible=False:
Combo2.Visible=False:
Combo3.Visible=False‘都不可见
Label2.Caption="选择项内容":
Label2.Alignment=vbCenter‘居中显示
EndSub
列表框和组合框的方法
列表框和组合框中的选项可以在设计状态通过List属性设置,也可在程序中用AddItem方法来添加,用RemoveItem或Clear方法删除。
AddItem方法
格式:
对象.AddItemitem[,index]
对象可以是列表框或组合框,item必须是字符串表达式,是将要加入列表框或组合框的选项。
index决定了新增选项在列表框或组合框中的位置,如省略,则加在最后,对于第一个选项,index=0。
RemoveItem方法
格式:
对象.RemoveItemindex
对象可以是列表框或组合框,index是被删除的选项在列表框或组合框中的位置。
对于第一选项,index=0
Clear方法
格式:
对象.Clear
对象可以是列表框、组合框或剪贴板。
它可清除对象中的全部内容。
5.事件
列表框:
Click、DblClick
组合框:
Click,只有简单组合框才有DblClick事件。
一般不需要编写Click事件过程,因为通常在单击命令按钮或发生DblClick事件时才读取Text属性
[例7.3]编写一个能对列表框进行项目添加、修改和删除操作的应用程序。
[例7.3]在myvb\vb7\ex7_3\lbc7_3.vbp
PrivateSubCommand1_Click()'增加
IfText1.Text<>""Then'确保增加有效项
List1.AddItemText1.Text
Text1.Text=""
EndIf
EndSub
PrivateSubCommand2_Click()'删除
IfList1.ListIndex>=0AndList1.ListIndex<=List1.ListCount-1Then_
List1.RemoveItemList1.ListIndex'确保运行不出错
EndSub
PrivateSubCommand3_Click()'修改
Text1.Text=List1.Text
Text1.SetFocus
List1.Enabled=False'目的:
防止列表框的ListIndex值人为发生变化
‘鼠标只要点击列表框内的某一项,listIndex立即就改变为此项的序号了
Command1.Enabled=False
Command2.Enabled=False
Command3.Enabled=False
Command4.Enabled=True
EndSub
PrivateSubCommand4_Click()'修改确定
IfText1.Text<>""ThenList1.List(List1.ListIndex)=Text1.Text
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=True
Command4.Enabled=False
List1.Enabled=True
EndSub
PrivateSubForm_Load()'列表框的Columns属性设置为0,即每行只有一项,垂直滚动。
DimxAsObject
Form2.Caption="列表框应用示例"
Command1.Caption="添加":
Command2.Caption="删除"
Command3.Caption="修改":
Command4.Caption="修改确定"
Command4.Enabled=False
Label1.Caption="文本框":
Label2.Caption="列表框(标准控件名称)"
Setx=List1‘对象list1赋给对象变量x
Withx
.AddItem"图片框":
.AddItem"标签"
.AddItem"文本框":
.AddItem"列表框"
.AddItem"框架":
.AddItem"命令按钮"
.AddItem"复选框":
.AddItem"单选按钮"
.AddItem"组合框":
.AddItem"水平滚动条"
.AddItem"垂直滚动条":
.AddItem"定时器"
.AddItem"驱动器列