VB电子教材04.docx
- 文档编号:24397081
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:47
- 大小:325.85KB
VB电子教材04.docx
《VB电子教材04.docx》由会员分享,可在线阅读,更多相关《VB电子教材04.docx(47页珍藏版)》请在冰豆网上搜索。
VB电子教材04
第4章常用控件二
经过上一章的介绍,我们对控件已经有了一个初步的了解。
本章我们将进一步介绍一些常用的控件:
单选按钮、复选框、框架、列表框、组合框、滚动条、定时器。
4.1单选按钮控件
工具箱中单选按钮控件的图标为
。
单选按钮控件时常出现在一些Windows应用程序中,比如我们在加入某个俱乐部的时候,会被告之填写一些电子表格,如图4-1所示。
图4-1入会电子表格
在性别这一栏,我们只需要在按钮上点击选择即可,非常方便,而且也不会出现重复选择的情况,即不会出现男女同时被选中的情况。
因此说,单选按钮是具有排他性的,若选中某一个按钮则取消其他被选中的按钮,只允许一个按钮被选中。
为了更好的利用单选按钮,在实际应用中,常使用单选按钮的控件数组。
4.1.1单选按钮控件的常用属性
.Caption属性(字符类型)
Caption属性值是显示在控件上的文本,是单选按钮的标题,如图4-1中的“男”,“女”。
单选按钮的该属性以及名称的缺省值都为Option1、Option2、……
.Alignment属性(取值为整数0、1)
Alignment属性决定单选按钮的标题(Caption属性值)在控件上的位置。
属性值为0,表示左对齐(LeftJustify),即单选按钮的标题在右边,此为默认方式。
如图4-2所示,控件Option1的标题“Option1”。
图4-2单选按钮对齐属性说明
属性值为1,表示右对齐(rightjustify),即单选按钮的标题在左边,如图4-2所示,控件Option2的标题“Option2”。
.Enabled属性(逻辑类型)
控件的Enabled属性值为False时,控件显示为灰色,运行时不可用。
就是说,此时若该控件的某一事件发生,相应的事件过程不会被调用。
.Index属性(整数类型)
Index属性值标识为单选按钮组成的控件数组中某个按钮的索引值,利用控件数组的方式使用单选按钮,可以简化代码,增强代码的可读性。
下列过程为控件数组Option1的单击事件过程,运行时单击其中第一个按钮时Index属性值为0,执行语句“Callpro1”;单击其中第二个按钮时Index属性值为1,执行语句“Callpro2”;等等。
PrivateSubOption1_Click(IndexAsInteger)
……
SelectCaseIndex
Case0
Callpro1
Case1
Callpro2
Case2
Callpro3
EndSelect
……
EndSub
.TabIndex属性(整数类型)
建立控件时,VB自动为其分配一个TabIndex值(Menu、Timer、Data、Image、Line和Shape等控件除外,这些控件不包括在Tab键顺序中),利用Tab键可以在控件之间切换焦点。
.Value属性(逻辑类型)
反映控件状态的属性,返回True表示已选择了该按钮;返回False(缺省值)表示没有选择该按钮,使用这个属性可以判断哪个按钮被选中。
4.1.2单选按钮的常用事件
和命令按钮一样,单选按钮最常用的也是Click事件。
在界面设计时,各控件一般按控件建立的时序,自动获得TabIndex属性值。
有些控件可以响应“获得焦点”事件(如文本框、单选按钮控件,相应的事件过程名为Text1_GotFocus、Option1_GotFocus,等等)。
运行时,这些控件中TabIndex属性值为最小的控件首先获得焦点。
文本框控件获得焦点,光标会在文本框内闪烁;命令按钮控件获得焦点,按回车键则该命令按钮的Click事件响应;单选按钮取得焦点后、执行GotFocus事件,还执行Click事件。
例4-1由文本框输入数据,求出该角度的正弦,余弦,正切,反正切三角函数值。
界面设计,如图4-3所示。
在本例中,应保证任何一个单选按钮的TabIndex属性值都不小于文本框、命令按钮的TabIndex属性值(可以在属性窗口中修改),否则,运行时单选按钮控件首先获得焦点、自动执行Click事件,导致在没有输入“角度”的情况下计算函数值。
图中控件的部分属性设置如下:
Label1.Caption="角度:
"(字体为隶书、三号字)
Text1.Text=""
Command1.Caption="EXIT"
Option1.Caption="Sin正弦值"
Option2.Caption="Cos余弦值"
Option3.Caption="Tan正切值"
Option4.Caption="Atn反正切值"
Label2.Caption=""
Label3.Caption=""
Label4.Caption=""
图4-3例4-1之界面设计
过程设计
PrivateSubCommand1_Click()'EXIT按钮,用于退出
End
EndSub
PrivateSubOption1_Click()
Label2.Caption="Sin"+"°"
Label3.Caption="="
Label4.Caption=Str(Sin(Val(Text1.Text)*3.14159265/180))
EndSub
PrivateSubOption2_Click()
Label2.Caption="Cos"+"°":
Label3.Caption="="
Label4.Caption=Str(Cos(Val(Text1.Text)*3.14159265/180))
EndSub
PrivateSubOption3_Click()
Label2.Caption="Tan"+"°"
Label3.Caption="="
Label4.Caption=Str(Tan(Val(Text1.Text)*3.14159265/180))
EndSub
PrivateSubOption4_Click()
Label2.Caption="Atn"+"°"
Label3.Caption="="
Label4.Caption=Str(Atn(Val(Text1.Text)*3.14159265/180))
EndSub
标签控件Label4用来显示结果。
在求三角函数的时候要注意计算机计算的是弧度,而不是角度,所以在计算时我们要把它们转换过来,计算公式为:
弧度值=角度值*3.14159265/180
程序的运行结果如图4-4所示。
图4-4例4-1之运行结果
例4-2重新设计例4-1中的程序,将四个单选按钮控件合为一个控件数组。
将例4-1的程序简化,由于其中四组计算不同三角函数值的程序代码极为相似,只是在运算时使用的三角函数不同而已,因此可以用控件数组的方法来实现,在添加OptionButton时利用复制粘贴的办法来产生控件数组中各个控件。
界面设计的外观与图4-3完全一致,但此时,单选按钮已产生了变化:
它们共同响应一个Click事件,由Index来区分不同的按钮。
界面设计
参照例4-1中界面设计,不同的是各单选按钮组成了一个控件数组,属性设置如下:
Option1(0).Caption="Sin正弦值"
Option1
(1).Caption="Cos余弦值"
Option1
(2).Caption="Tan正切值"
Option1(3).Caption="Atn反正切值"
过程设计
PrivateSubOption1_Click(IndexAsInteger)
DimxAsSingle
Label3.Caption="="
SelectCaseIndex
Case0
Label2.Caption="Sin"+"°"
x=Sin(Val(Text1.Text)*3.14159265/180)
Label4.Caption=Format(x,"0.00")
Case1
Label2.Caption="Cos"+"°"
x=Cos(Val(Text1.Text)*3.14159265/180)
Label4.Caption=Format(x,"0.00")
Case2
Label2.Caption="Tan"+"°"
x=Tan(Val(Text1.Text)*3.14159265/180)
Label4.Caption=Format(x,"0.00")
Case3
Label2.Caption="Atn"+"°"
x=Atn(Val(Text1.Text)*3.14159265/180)
Label4.Caption=Format(x,"0.00")
EndSelect
EndSub
程序中的函数Format的作用是:
计算其第一个数值参数的值,用其第二个参数所提供的格式、将该数值转换为字符串返回。
在此,格式串"0.00"使三角函数值保留小数点后两位(整数部分的位数不限)。
4.2复选框控件
工具箱中复选框控件的图标为。
与上节所介绍的单选按钮控件作比较,复选框意味着多项选择。
与单选按钮不同的是,它每次可在同组的复选框中选择多个结果,如图4-5所示。
图4-5复选框示例
一般情况下,复选框控件是以数组的方式添加的,而是否被选中可以由它的属性Value的值进行判断。
4.2.1复选框控件的常用属性
Caption属性(字符类型)
复选框控件的Caption属性以及名称的缺省值都为Check1、Check2、……
Index属性(整数类型))
该属性值为复选框控件数组的下标,一般来说,使用控件数组时这是不可少的属性,通过它可以区分开同一控件数组中的不同复选框。
3.Value属性(整数0、1、2)
复选标志,这是复选框最重要的属性,它的值与复选框控件的状态有关,其缺省值为0。
Value属性值为0,则复选框内为空白;Value属性值为1,则复选框内显示一个“√”标志;Value属性值为2,则复选框内为灰色的“√”标志。
运行时单击复选框:
如果原先Value属性值为0(同时框内显示空白),单击后Value属性值变为1(同时框内显示“√”标志)。
如果原先Value属性值为1或2(同时框内显示黑白或灰色的“√”标志),单击后Value属性值变为0(同时框内显示空白)。
反复单击同一复选框控件时,其Value属性值只能在0、1之间交替变换。
4.2.2复选框控件的常用事件
复选框控件的常用事件一般为Click事件,复选框不支持鼠标双击事件,系统把一次双击解释为两次单击事件。
例4-3利用复选框设置字型变化:
加下划线、加粗、斜体,文字用标签框显示。
界面设计,如图4-5所示。
图4-5例4-3之界面设计
控件的部分属性设置如下:
Lable1.Caption="VisualBasic"
Check1.Caption="加粗"
Check2.Caption="下划线"
Check3.Caption="斜体"
过程设计
PrivateSubCheck1_Click()
IfCheck1.Value=1Then
Label1.FontBold=True
Else
Label1.FontBold=False
EndIf
EndSub
PrivateSubCheck2_Click()
IfCheck2.Value=1Then
Label1.FontUnderline=True
Else
Label1.FontUnderline=False
EndIf
EndSub
PrivateSubCheck3_Click()
IfCheck3.Value=1Then
Label1.FontItalic=True
Else
Label1.FontItalic=False
EndIf
EndSub
当复选框的Value属性为1时,复选框被选中,产生各种字型变化的效果。
而当它为0时,字型恢复到默认的状态。
运行结果图4-6所示。
图4.6例4-3之运行结果
4.3框架控件
框架控件的图标为。
框架控件的Caption属性以及名称的缺省值都为Frame1、Frame2、……
和窗体、图片框控件一样,框架控件也可以作为其他控件的容器。
在容器中的控件,不仅可以随容器移动,而且控件的位置属性也是以相对于容器的位置设置的。
Frame控件不仅可以作为其他控件的容器,而且可用Frame控件将其他控件分为可标识的控件组,比如单选按钮可以通过Frame分组,从而产生多个选择。
注意:
必须先建立框架控件,然后在框架中添加其他的控件,不能简单的把已建立的控件拖动到框架中去。
例4-4利用框架建立一个字体、字型、字号的对话框。
可以沿用上一个例题的方式,使用复选框,但字体和字号只能单选,又必须使用单选框。
所以,如何将单选框区分为两个不同的选择组呢?
框架使我们做起来得心应手。
界面设计如图4-7所示,控件的部分属性设置如下:
Frame1.Caption="字型"
Check1(0).Caption="粗体"
Check1
(1).Caption="下划线"
Check1
(2).Caption="斜体"
Frame2.Caption="字号"
Option1(0).Caption="10"
Option1
(1).Caption="20"
Option1
(2).Caption="30"
Frame3.Caption="字体"
Option2(0).Caption="黑体"
Option2
(1).Caption="楷体"
Option2
(2).Caption="宋体"
图4-7例4-4之界面设计
过程设计
PrivateSubCheck1_Click(IndexAsInteger)
SelectCaseIndex
Case0
IfCheck1(0).Value=1Then
Text1.FontBold=True
Else
Text1.FontBold=False
EndIf
Case1
IfCheck1
(1).Value=1Then
Text1.FontUnderline=True
Else
Text1.FontUnderline=False
EndIf
Case2
IfCheck1
(2).Value=1Then
Text1.FontItalic=True
Else
Text1.FontItalic=False
EndIf
EndSelect
EndSub
PrivateSubOption1_Click(IndexAsInteger)
SelectCaseIndex
Case0
Text1.FontSize=10
Case1
Text1.FontSize=20
Case2
Text1.FontSize=30
EndSelect
EndSub
PrivateSubOption2_Click(IndexAsInteger)
SelectCaseIndex
Case0
Text1.FontName="黑体"
Case1
Text1.FontName="楷体_gb2312"
Case2
Text1.FontName="宋体"
EndSelect
EndSub
设置FontName属性时,不要采用中文输入法输入双引号,而应采用英文输入法。
此外,楷体的字体名称是"楷体_gb2312",不要与别的字体类型混淆起来。
4.4列表框控件和组合框控件
列表框和组合框都可以为用户提供选项列表,用户可以在列表中进行选择。
由于二者提供不同的选择方式,使得界面有更多变化。
一般情况下,如果希望将选择限制在列表之内时,应使用列表框。
组合框包含编辑区域,因此可以通过组合框将不在列表的选项输入列表区域中。
此外,组合框节省了窗体空间。
当程序预留的界面空间很小时,组合框就是不让之选了。
4.4.1列表框控件ListBox
工具箱中列表框控件的图标为。
列表框控件的Caption属性以及名称的缺省值都为List1、List2、……
列表框控件显示项目列表,从其中可以选择一项或多项。
如果项目总数超过了可显示的项目数,就自动在ListBox控件上添加滚动条。
它不具备编辑功能,运行时不能在列表框内输入。
1.列表框控件常用属性
List属性(字符串数组)
列表框控件的各个表项是使用数组的方式保存的,数组的每一个元素存储列表框控件的一个表项。
因此,利用索引可以访问列表项目。
格式为:
列表框控件名.List(Index)
如图4-8所示的列表框控件名称为List1,表达式“List1.List(0)”的值为“红楼梦”,因为索引(数组元素下标)值为0,因此访问的是数组List中的第一个表项。
图4-8列表框控件示例
注意:
数组元素最小下标值的设定对于列表框来说是无效的,如设定“OptionBase1”,但对于列表框来说,第一个表项的索引值总是0。
ListCount属性(正整数)
该属性值为控件列表部分项目的个数,由于索引值从0开始计数,所以ListCount-1是最后一个项目的Index。
因此,列表框List属性下标值的范围为0~ListCount-1。
图4-8所示列表框控件的下标范围为0~3,而它的ListCount值为4。
ListIndex属性(整数类型)
该属性值为被选中表项的索引,如果没有选中任何一项,则该属性值为-1。
建议:
仅当列表框控件设置了“单选”属性情况下,用ListIndex属性值访问所选项。
通过ListIndex属性,可以区分已经选中和未被选中的表项。
如图4-8所示:
若列表框控件名称为List1,则表达式“List1.List(List1.ListIndex)”的值为"红楼梦",因为第1个表项被选中(故VB将其突出显示)、相应属性ListIndex值为0;假定只有“三国演义”表项被选中,则控件的ListIndex值为2;假定图中没有任何一个表项被突出显示,则列表框的ListIndex属性值为-1;如果为列表框的ListIndex属性赋值-1,则列表框中取消对任何表项的突出显示。
MutiSelect属性(整数0、1、2)
利用列表框控件的该属性,可以为列表框设置“单选”或“允许多选”属性。
MutiSelect属性值为0:
只能单选(缺省值),若选中一个表项则其他表项取消突出显示。
MutiSelect属性值为1:
可以多选,被选中的表项都被突出显示。
MutiSelect属性值为2:
扩展多选,可以用鼠标在列表栏内拖动、选中相邻的若干个表项。
Text属性(最后一次选中的表项,字符串类型)
该属性用来返回当前选中的表项内容。
对于单选的列表框控件List1,字符串List1.list(ListIndex)与List1.Text相等,都是被选中表项的文本。
Selected属性(逻辑类型)
Selected属性标识一个数组,数组各元素为:
Selected(0)、Selected
(1)、……、Selected(列表框控件名.ListCount-1)
若列表框控件的第i个表项被选中,则Selected(i-1)的值为True(若为Selected(i-1)赋值True,则列表框控件的第i个表项被突出显示);
若列表框控件的第i个表项未被选中,则Selected(i-1)的值为False(若为Selected(i-1)赋值False,则列表框控件的第i个表项被取消突出显示)。
在允许多项选择的情况,应利用Selected属性区分哪些表项被选中。
下列语句可以在窗体上显示列表框控件List1被选中的表项:
Fori%=0ToList1.ListCount-1
IfList1.Selected(i%)=TrueThenPrintList1.List(i%)
Nexti%
SelCount属性(整数类型)
列表框控件的该属性值为被选中表项的个数。
Sorted属性(逻辑类型)
确定列表框控件的各表项是否按字母数字升序排列:
设为True时按序排列;设为False时不按序排列。
该属性的默认值为False。
Style属性(整数0、1)
列表框控件该属性值用以确定列表框的外观。
Style属性值为1,为复选框样式,如图4-9左边列表框List1所示。
Style属性值为0(缺省值),为标准样式,如图4-9右边列表框List2所示。
图4-9列表框控件Style示例
若列表框控件的Style属性值为1,无论MutiSelect属性取何值,该列表框在实际使用上允许多选。
2.列表框控件的常用方法
AddItem方法
列表框控件的表项可以在属性设置时添加:
在属性窗口内选中List属性,在下拉框中添加,用Ctrl+Enter换行。
此外,还可以用AddItem方法在设计时添加。
格式:
列表框控件名.AddItem表项文本[,索引号]
索引号可以指定项目文本的插入位置,省略索引号则表项文本自动加到列表框末尾。
索引号只能小于列表框的ListCount属性值:
或表项文本加到列表框末尾,或插入到已有表项中。
如下列Form_Load事件可在装入窗体时,为列表框控件List2添加若干表项。
如果List2在设计时为空表,则执行下列事件过程后列表框控件List2的显示如图4-9所示。
PrivateSubForm_Load()
List2.AddItem"篮球"
List2.AddItem"足球"
List2.AddItem"网球"
List2.AddItem"排球"
List2.AddItem"羽毛球"
List2.AddItem"曲棍球"
EndSub
运行时可以用赋值语句在列表框控件中添加表项:
列表框控件名.List(ListIndex)=表项文本
同样,用赋值语句添加表项时,索引号也只能小于列表框的ListCount属性值。
Clear方法
该方法用以清空列表框控件中所有表项。
格式:
列表框控件名.Clear
RemoveItem方法
该方法用以删除列表框中指定表项。
格式:
列表框控件名.RemoveItem索引值
例4-5编程,对列表框控件中的表项作添加、删除、清空处理。
界面设计,如图4-10所示:
命令按钮名称从上到下依次为C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 电子 教材 04