第9章常用标准控件.docx
《第9章常用标准控件.docx》由会员分享,可在线阅读,更多相关《第9章常用标准控件.docx(50页珍藏版)》请在冰豆网上搜索。
![第9章常用标准控件.docx](https://file1.bdocx.com/fileroot1/2023-2/3/fabcbd28-beae-4096-bbda-00a6874a9b57/fabcbd28-beae-4096-bbda-00a6874a9b571.gif)
第9章常用标准控件
第九章常用标准控件
本章要求:
掌握常用控件单选钮、检查框、框架、滚动条、列表框、组合框、时钟等的常用、属性、重要事件和方法的使用;
了解一些常用的ActiveX控件(高级控件)的使用。
了解一些常用系统对象的使用。
本章重点:
单选钮、检查框、框架、滚动条、列表框、组合框、时钟等的常用、属性、重要事件和方法的使用。
本章难点:
列表框、组合框、ActiveX控件的使用。
9.1控件类型
VisualBasic中的控件分为三类:
●标准控件(内部控件)
●ActiveX控件(外部控件)
●可插入对象
VB工具箱中只列有标准控件(20个)。
9.1.1标准控件
又称内部控件,是出现在工具箱上的控件。
如下图:
9.1.2ActiveX控件
ActiveX控件是可以重复使用的编程代码和数据,它由用ActiveX技术创建的一个或多个对象所组成,其扩展名为.OCX。
在Windows系统的System目录中将ActiveX控件添加到工具箱。
操作步骤如下:
单击工程菜单下的部件选项,选中ActiveX控件左边的复选框,单击确定按钮。
9.1.3可插入对象
可插入对象是由其它应用程序创建的对象,如Excel表格、word文档等,添加和使用方法与ActiveX控件相同。
9.2常用标准控件
控件是构成用户界面的基本元素,只有掌握了控件的属性、事件和方法,才能编写具有实用价值的应用程序。
9.2.1单选钮和复选按钮
1.单选钮
1.用途
单选钮(OptionButton)也称作选择按钮。
一组单选钮控件可以提供一组彼此相互排斥的选项,任何时刻用户只能从中选择一个选项,实现一种“单项选择”的功能,被选中项目左侧圆圈中会出现一黑点。
2.重要属性
(1)Caption:
文本标题。
设置单选钮的文本注释内容。
(2)Alignment属性:
0:
—LeftJustify(缺省设置)控件钮在左边,标题显示在右边。
1:
—RightJustify控件钮在右边,标题显示在左边。
(3)Value属性
True:
单选钮被选定
False:
单选钮未被选定(缺省设置)
(4)Style属性
0--Standard:
标准方式
1--Graphical:
图形方式
说明:
在Style属性设置为1时,可使用Picture属性(未选定时的图标或位图)
3.方法
SetFocus方法是单选钮控件最常用的方法,可以在代码中通过该方法将Value属性设置为True。
与命令按钮相同,使用该方法之前,必须要保证单选钮处于可见和可用状态(即Visible与Enabled属性值均为True)。
4.事件
Click事件是单选钮控件最基本的事件,一般情况用户无需为单选钮编写Click事件过程,因为当用户单击单选钮时,它会自动改变状态。
2.复选按钮
复选按钮也叫做检查、选择框、其缺省名为checkX(x为1,2,3…)
一组复选框可以提供多个选项,它们彼此独立工作(互不排斥)。
因此可以同时选择多个。
1.用途
检查框(CheckBox)也称作复选框、选择框。
一组检查框控件可以提供多个选项,它们彼此独立工作,所以用户可以同时选择任意多个选项,实现一种“不定项选择”的功能。
选择某一选项后,该控件将显示√,而清除此选项后,√消失。
2.重要属性
Caption、Alignment、Style与单选钮相同
•检查框的Value属性与单选按钮不同,其值为数值型数据,可取0,1,2
复选按钮与单选按钮Value属性的比较
单选钮
True:
单选钮被选定
False:
单选钮未被选定,缺省设置
检查框
0--Unchecked:
未被选定
1--Checked:
选定
2--Grayed:
灰色,禁止选择
3.事件
Click事件是检查框控件最基本的事件。
用户一般无需为检查框编写Click事件过程,但其对Value属性值的改变遵循以下规则:
单击未选中的检查框时,Value属性值变为1;
单击已选中的检查框时,Value属性值变为0;
单击变灰的检查框时,Value属性值变为0。
例9-1用单先按钮和复选按钮设置文本框中字体的样式。
PrivateSubchkchu_Click()
Ifchkchu.Value=1Then
Text1.FontBold=True
Else
Text1.FontBold=False
EndIf
EndSub
PrivateSubChkxie_Click()
IfChkxie.Value=1Then
Text1.FontItalic=True
Else
Text1.FontItalic=False
EndIf
EndSub
PrivateSubOptli_Click()
Text1.FontName="隶书"
EndSub
PrivateSubOptsong_Click()
Text1.FontName="宋体"
EndSub
9.2.2列表框和组合框
列表框控件(ListBox)的主要用途在于提供列表式的多个数据项供用户选择。
在列表框中放入若干个项的名字,用户可以通过单击某一项或多项来选择自己所需要的项目。
如果放入的项较多,超过了列表框设计时可显示的项目数,则系统会自动在列表框边上加一个垂直滚动条。
组合框控件(ComboBox)将文本框和列表框的功能组合在一起,用户可以在列表框中选定某一项,或在编辑区直接输入文本内容来选定项目。
1、属性
(1)List属性
该属性是一个字符串数组,用来保存列表框中的各个数据项内容。
List数组的下标从0开始,即List(0)保存表中的第一个数据项的内容。
List
(1)保存第二个数据项的内容,依次类推,List(ListCount-1)保存表中的最后一个数据项的内容。
(2)ListCount属性
该属性记录了列表框中的数据项数,该属性只能在程序中引用它。
(3)ListIndex属性
该属性是List数组中,被选中的列表项的下标值(即索引号)。
如果用户选择了多个列表项,则ListIndex是最近所选列表项的索引号;如果用户没有从列表框中选择任何一项,则ListIndex为-1。
程序运行时,可以使用ListIndex属性判断列表框中哪一项被选中。
例如,在列表框List1中选中第2项,即List1.List数组的第2项,则ListIndex=1(ListIndex从0开始)。
ListIndex属性不能在设计时设置,只有程序运行时才起作用。
(4)Text属性
用于存放被选中列表项的文本内容。
该属性是只读的,不能在属性窗口中设置,也不能在程序中设置,只用于获取当前选定的列表项的内容。
可在程序中引用Text属性值
(5)Selected属性
该属性是一个逻辑数组,其元素对应列表框中相应的项。
表示相应的项在程序运行期间是否被选中。
例如,Selected(0)的值为True,表示第一项被选中,如为False,表示未被选中
(6)Style属性
该属性用来设置列表框或组合框中项目的显示方式,在运行时是只读的。
对于列表框,其值为0或1。
对于组合框,其值为0、1、2。
(7)MultiSelect属性
用于指示是否能够在列表框或组合框控件中进行复选以及如何进行复选,在运行时是只读的。
注意,组合框控件无此属性。
●0:
(缺省)不允许复选。
●1:
简单复选。
鼠标单击或按下空格键在列表中选中或取消选中项。
箭头键移动焦点。
添加此控件时如果设置style属性值为1,则应该向下拖动以增加高度方有效果。
●2:
扩展复选。
按下Shift并单击鼠标将在以前选中项的基础上扩展选择到当前选中项。
按下Ctrl键并单击鼠标表示在列表中选中或取消选定一个选择项。
(7)NewIndex属性
返回最近加入列表框或组合框控件的项目的索引。
如果在列表中已没有项目或删除了一个项目,该属性将返回-1。
(8)TopIndex属性
返回或设置一个值,该值指定哪个项被显示在列表框或组合框控件顶部的位置。
该属性取值范围从0到ListCount-1,在设计时不可用。
(9)Sorted属性
返回一个逻辑值,当Sorted属性为True时列表框或组合框控件的项目自动按字母表顺序(升序)排序,为False时项目按加入的先后顺序排列显示。
该属性只能在设计时设置,不能在程序代码中设置。
2.常用事件
(1)Click事件
当单击某一列表项目时,将触发列表框与组合框控件的Click事件。
该事件发生时系统会自动改变列表框与组合框控件的ListIndex、Selected、Text等属性,无需另行编写代码。
(2)DblClick事件
当双击某一列表项目时,将触发列表框与简单组合框控件的DblClick事件。
(3)Change事件
当用户通过键盘输入改变下拉式组合框或简单组合框控件的文本框部分的正文,或者通过代码改变了Text属性的设置时,将触发其Change事件。
3.方法
ListBox对应的控件方法有:
AddItem,Clear和RemoveItem
(1)AddItem方法
该方法向一个列表框中加入列表项,其语法是:
<列表框控件名|组合框控件名>.Additem<项目>[,<索引值>]
(2)RemoveItem方法
该方法用于删除列表框中的列表项,其语法是:
<列表框控件名|组合框控件名>.RemoveItem<索引值>
(3)Clear方法
该方法删除列表框控件中的所有列表项。
其语法是:
<列表框控件名|组合框控件名>.Clear
例9-2从一个列表框中选择城市名加入到另一个列表框中。
PrivateSubCommand1_Click()
List2.AddItemList1.Text
List1.RemoveItemList1.ListIndex
EndSub
PrivateSubCommand2_Click()
List1.AddItemList2.Text
List2.RemoveItemList2.ListIndex
EndSub
PrivateSubForm_Load()
List1.AddItem"昆明"
List1.AddItem"北京"
List1.AddItem"上海"
List1.AddItem"济南"
List1.AddItem"成都"
List1.AddItem"长春"
List1.AddItem"广州"
List1.AddItem"珠海"
List1.AddItem"郑州"
List1.AddItem"香港"
List1.AddItem"大连"
List1.AddItem"贵阳"
List1.AddItem"沈阳"
List1.AddItem"鞍山"
List1.AddItem"武汉"
List1.AddItem"长沙"
EndSub
PrivateSubList1_DblClick()
List2.AddItemList1.Text
List1.RemoveItemList1.ListIndex
EndSub
PrivateSubCommand3_Click()
List1.Clear
EndSub
运行结果如下图:
例9-2a从一个列表框中选择城市名加入到另一个列表框中。
PrivateSubCommand1_Click()
Combo2.AddItemCombo1.Text
Combo1.RemoveItemCombo1.ListIndex
EndSub
PrivateSubCommand2_Click()
Combo1.AddItemCombo2.Text
Combo2.RemoveItemCombo2.ListIndex
EndSub
PrivateSubCommand3_Click()
Combo1.Clear
EndSub
PrivateSubForm_Load()
Combo1.AddItem"昆明"
Combo1.AddItem"北京"
Combo1.AddItem"上海"
Combo1.AddItem"济南"
Combo1.AddItem"成都"
Combo1.AddItem"长春"
Combo1.AddItem"广州"
Combo1.AddItem"珠海"
Combo1.AddItem"郑州"
Combo1.AddItem"香港"
Combo1.AddItem"大连"
Combo1.AddItem"贵阳"
Combo1.AddItem"沈阳"
Combo1.AddItem"鞍山"
Combo1.AddItem"武汉"
Combo1.AddItem"长沙"
EndSub
PrivateSubcombo1_DblClick()
Combo2.AddItemCombo1.Text
Combo1.RemoveItemCboIndex
EndSub
运行结果如下:
思考题:
利用列表框和命令按钮编程,要求程序能够实现添加项目、删除项目、删除全部项目的功能
例9-3如图,在输入姓名文本框中输入姓名加入到列表框中,并能删除列表框中之姓名。
同时能显示列表框中人数。
PrivateSubCommandadd_Click()
IfTextXM.Text<>""Then
List1.AddItemTextXM.Text
Label2.Caption=List1.ListCount
TextXM.Text=""
EndIf
TextXM.SetFocus
EndSub
PrivateSubCommanddelete_Click()
i=List1.ListIndex
List1.RemoveItemi
Label2.Caption=List1.ListCount
Commanddelete.Enabled=False
EndSub
PrivateSubList1_Click()
Commanddelete.Enabled=True
EndSub
运行结果如下图:
例9-4测试组合框的使用。
PrivateSubCombo1_Click()
Text1.Text=Combo1.Text
EndSub
PrivateSubForm_Load()
Combo1.AddItem"北京"
Combo1.AddItem"上海"
Combo1.AddItem"天津"
Combo1.AddItem"沈阳"
Combo1.AddItem"南京"
Combo1.AddItem"杭州"
EndSub
运行结果如下:
例9-5提供给用户输入信息的界面。
PrivateSubCommand1_Click()
p1=Text1.Text&""
p2=IIf(Option1.Value,"男","女")&""
p3=Text2.Text&"岁"&""
p4=IIf(Option3.Value,"已婚","未婚")&""&Chr(13)
p5="职称:
"&Combo1.Text&","
p6="学历:
"&Combo2.Text
p=p1&p2&p3&p4&p5&p6
MsgBoxp,vbOKOnly+vbInformation,Text1.Text&"基本情况"
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Activate()
Text1.SetFocus
EndSub
PrivateSubForm_Load()
Combo1.AddItem"正高"
Combo1.AddItem"副高"
Combo1.AddItem"中级"
Combo1.AddItem"初级"
Combo1.AddItem"无职称"
Combo1.Text=Combo1.List(0)
Combo2.AddItem"研究生"
Combo2.AddItem"大学"
Combo2.AddItem"大专"
Combo2.AddItem"高中"
Combo2.AddItem"初中"
Combo2.Text=Combo2.List(0)
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Text2.SetFocus
EndIf
9.2.3滚动条(ScrollBar)
1用途
滚动条控件(ScrollBar)分为水平滚动条(HScrollbar)和垂直滚动条(VscrollBar)二种,通常附在窗体上协助观察数据或确定位置,也可用作数据输入工具,用来提供某一范围内的数值供用户选择。
2.属性
(1)Value
滑块所处位置所代表的值。
(2)Max:
最大值
-32,768~32,767
(3)Min:
最小值
-32,768~32,767
(4)SmallChange
最小变动值,
单击箭头时移动的增量值。
(5)LargeChange
最大变动值,单击空白处时移动的增量值。
3事件
(1)Change事件
滚动条的Change事件在移动滚动框或通过代码改变其Value属性值时发生。
单击滚动条两端的箭头或空白处将引发Change事件。
(2)Scroll事件
当滚动框被重新定位,或按水平方向或垂直方向滚动时,Scroll事件发生。
拖动滑块时会触发Scroll事件。
Scroll事件与Change事件的区别在于:
当滚动条控件滚动时Scroll事件一直发生,而Change事件只是在滚动结束之后才发生一次。
例9-6利用滚动条来设置文本框中字体的颜色。
PrivateSubHScroll_Change(IndexAsInteger)
Label1.Caption=(HScroll(0).Value+HScroll
(1).Value+HScroll
(2).Value)\3
Text1.FontSize=(HScroll(0).Value+HScroll
(1).Value+HScroll
(2).Value)\3
Text(Index).Text=HScroll(Index).Value
Text1.ForeColor=RGB(HScroll(0).Value,HScroll
(1).Value,HScroll
(2).Value)
Text1.BackColor=RGB(299-HScroll(0).Value,299-HScroll
(1).Value,299-HScroll
(2).Value)
EndSub
例题:
利用滚动条改变文本框中所显示文本的字号大小。
要求程序运行效果如图所示。
程序代码如下:
PrivateSubHScroll1_Change()
Label1.Caption=HScroll1.Value
Text1.FontSize=HScroll1.Value
EndSub
9.2.4时钟控件
1.用途
时钟控件(Timer)又称计时器、定时器控件,用于有规律地定时执行指定的工作,常常用于编写不需要与用户进行交互就可直接执行的代码,如计时、倒计时、动画等。
在程序运行阶段,时钟控件不可见。
2.属性
(1)Interval属性
取值范围在0~64767,单位:
为毫秒(0.001秒),表示计时间隔。
若将Interval属性设置为0或负数,则计时器停止工作。
缺省设置为0
(2)Enabled属性
设置为True,而且Interval属性值大于0,则计时器开始工作(以Interval属性值为间隔,触发Timer事件)。
设置为False可使时钟控件无效,即计时器停止工作。
缺省设置为True
3.方法
Timer控件没有方法。
4事件
时钟控件只有Timer事件
当Enabled属性值为True且Interval属性值大于0时,该事件以Interval属性指定的时间间隔发生
常常将需要定时执行的操作放在Timer事件过程中
例9-7设计一个简单的电子时钟
PrivateSubTimer1_Timer()
Text1.Text=Time
EndSub
例9-8设计一个滚动字幕程序。
PrivateSubCommand1_Click()
Timer1.Enabled=True
EndSub
PrivateSubCommand2_Click()
Timer1.Enabled=False
EndSub
PrivateSubTimer1_Timer()
IfLabel1.Left>Form1.WidthThen
Label1.Left=Label1.Left-Form1.Width
Else
Label1.Left=Label1.Left+100
EndIf
EndSub
9.2.5框架(Frame)
Frame控件为控件提供可标识的分组。
它是一个容器控件。
当需要在同一窗体内建立几组互独立的单选钮时,就需要用框架将每一组单选钮框框起来,把OptionButton控件分成几组,如下形式。
框架内控件的创建方法:
为了将控件分组,首先需要绘制Frame控件,然后绘制Frame里面的控件。
这样就可以把框架和里面的控件同时移动。
如果在Frame外部绘制了一个控件并试图把它移到框架内部,那么控件将在Frame的上部,这时需分别移动Frame和控件。
方法1:
单击工具箱上的工具,然后用出现的“+”指针,在框架中适当位置拖拉出适当大小的控件。
不能使用双击工具箱上工具的自动方式。
方法2:
将控件“剪切”(Ctrl+X)到剪贴板,然后选中框架,使用(Ctrl+V)命令粘贴到框架内。
重要属性
1.Caption属性:
框架标题
2Enabled属性:
缺省为True
False:
标题呈灰色,不允许对框架内的所有对象进行操作。
3.Visible属性:
True:
框架及其控件可见。
False:
框架及其控件被隐含起来。
事件:
框架可以响应的事件Click、DblClick
一般不需要有关框架的事件过程。
9.3图片框和图像框控件
图片框控件(PictureBox)和图像框控件(ImageBox)主要用于在窗体的指定位置显示图形信息。
VB6.0支持.bmp、.ico、.wmf、.emf、.jpg、.gif等格式的图形文件
1、图片框、图像框的常用属性
Picture属性
图片框和图像