
第06章常用内部控件.ppt
81页第第6章章 常用内部控件常用内部控件w 6.1 6.1 选择类控件与框架选择类控件与框架 w 6.2 6.2 列表类控件列表类控件 w 6.3 6.3 图像显示控件图像显示控件 w 6.4 6.4 定时器定时器 w 6.5 6.5 滚动条滚动条w 6.6 6.6 本章小结本章小结 w 6.7 6.7 上机实训上机实训结束6.1 6.1 选择类控件与框架选择类控件与框架 w6.1.1 6.1.1 单选按钮单选按钮 w6.1.2 6.1.2 复选框复选框 w6.1.3 6.1.3 框架框架 返回首页6.1.1 6.1.1 单选按钮单选按钮((1 1)) 单单选选按按钮钮((OptionButtonOptionButton))又又称称单单选选钮钮,,它它的的作作用用是是显显示示一一个个可可以以表表示示““打打开开/ /关关闭闭””的的选选项项,,使使用用户在多个选项中只能选择其一户在多个选项中只能选择其一 例例如如学学生生性性别别的的输输入入,,代代表表性性别别的的““男男””、、““女女””是是相相互互排排斥斥的的,,故故可可以以使使用用两两个个单单选选按按钮钮实实现现,,如图如图6.16.1所示。
所示 6.1.1 6.1.1 单选按钮单选按钮((2 2)) 1 1.常用属性.常用属性 ((1 1))ValueValue属性属性 单单选选按按钮钮的的属属性性除除了了一一些些通通用用属属性性如如CaptionCaption、、EnabledEnabled、、VisibleVisible、、FontFont、、ForeColorForeColor、、BackColorBackColor等等外外,,主主要要是是ValueValue属属性性该该属属性性表表示示单单选选按按钮钮被被选选中中((TrueTrue))或或不不被被选选中中的的状状态态((FalseFalse))在在程程序序运运行行时时,,单单击击单单选选按按钮钮,,使使其其单单选选框框中出现一个黑色圆点,就表示选中了该项中出现一个黑色圆点,就表示选中了该项 说说明明::ValueValue属属性性是是单单选选按按钮钮控控件件的的默默认认属属性性((或或称称控控件件值值))所所有有控控件件都都有有一一个个属属性性,,只只需需引引用用控控件件名名而而无无需需使使用用属属性性名名即即可可访访问问这这个个属属性性,,此此属属性性被被称称为为控控件件的的默默认认属属性性。
例例如如,,Option1.Value Option1.Value = = True True 与与 Option1 Option1 = = True True 等等效效其其他他常常用用控控件件如如文文本本框框控控件件的的默默认认属属性性为为TextText,,标标签签控控件件的的默默认认属属性性为为CaptionCaption使使用用默默认认属属性性时时,,代代码码的的可可读读性性略略受受影影响响,,所所以以在在不不引引起起代代码码阅阅读读困困难难时时方方可可考考虑使用默认属性虑使用默认属性 6.1.1 6.1.1 单选按钮单选按钮((3 3))((2 2))StyleStyle属性属性 单单选选按按钮钮的的StyleStyle属属性性用用来来设设置置控控件件的的外外观观当当值值为为0 0时时,,控控件件显显示示如如图图6.16.1所所示示的的标标准准样样式式;;当当值值为为1 1时时,,控控件件显显示示如如图图6.26.2所所示示的的图图形形样样式式,,其外观类似于命令按钮其外观类似于命令按钮 ((3))PicturePicture、、DownPictureDownPicture和和DisabledPictureDisabledPicture属性属性 当当StyleStyle属性为属性为1 1时,这三个属性有效。
其中:时,这三个属性有效其中:PicturePicture属性返回或设置控件中要显示的图像;属性返回或设置控件中要显示的图像;DownPictureDownPicture属性属性返回或设置控件被选中后(即单击后)要显示的图像;返回或设置控件被选中后(即单击后)要显示的图像;DisabledPictureDisabledPicture属性返回或设置控件无效时显示的图像,属性返回或设置控件无效时显示的图像,即控件的即控件的EnabledEnabled属性为属性为FalseFalse时控件的外观图像时控件的外观图像6.1.1 6.1.1 单选按钮单选按钮((4 4)) 上上述述三三个个属属性性可可以以在在设设计计阶阶段段通通过过““属属性性窗窗口口””直直接接设设置置为为某某个个图图像像文文件件,,也也可可以以在在运运行行期期间间由由函函数数LoadPictureLoadPicture加加载载在在图图6.36.3中中,,单单选选按按钮钮的的StyleStyle已已经经设设置置为为1 1,,左左图图表表示示设设置置了了PicturePicture属属性性的的情情况况,,而而右右图图表表示示同同时时设设置置了了DownPictureDownPicture属属性性的情况。
的情况图图6.3 单选按钮的单选按钮的Picture和和DownPicture属性属性 6.1.1 6.1.1 单选按钮单选按钮((5 5)) 2 2.常用事件.常用事件 单选按钮可以识别的主要事件是单击(单选按钮可以识别的主要事件是单击(ClickClick))事件 【【例例6.16.1】】控控制制文文本本框框中中文文本本的的字字体体变变化化字字体体可可以以使使用用““宋体宋体””、、““隶书隶书””和和““幼圆幼圆””三者之一三者之一 本例通过三个单选按钮选择本例通过三个单选按钮选择字体名称,属性设置见表字体名称,属性设置见表6.16.1其中,将文本框中,将文本框Text1Text1的的MultilineMultiline属性设为属性设为TrueTrue的目的是使其允许的目的是使其允许多行显示此时,在属性窗口设多行显示此时,在属性窗口设置文本框的置文本框的TextText属性时,须通过属性时,须通过组合键组合键Ctrl+Ctrl+回车来分行输入文本回车来分行输入文本内容内容 程序的运行结果如图程序的运行结果如图6.46.4代码如下:代码如下:Private Sub cmdOk_Click() '单击单击“应用应用”按钮按钮 If optFont1 = True Then Text1.FontName = "宋体宋体" If optFont2 = True Then Text1.FontName = "隶书隶书" If optFont3 = True Then Text1.FontName = "幼圆幼圆"End SubPrivate Sub Form_Load() '窗体加载窗体加载 Text1.FontName = "宋体宋体" Text1.FontSize = 12 optFont1 = TrueEnd Sub返回首页返回本节6.1.2 6.1.2 复选框复选框 ((1 1)) 复复选选框框((CheckBoxCheckBox))也也称称为为选选择择框框、、检检查查框框,,通通常常用用于于提提供供 Yes/No Yes/No 或或 True/False True/False 的的逻逻辑辑选选择择。
一一个个复复选选框框主主要要有有两两种种状状态态::选选中中状状态态,,或或称称打打开开状状态态,,复复选选框框上上出出现现“√”“√”标志;未选中状态,或称关闭状态,不出现标志;未选中状态,或称关闭状态,不出现“√”“√”标志 复复选选框框的的属属性性和和单单选选按按钮钮的的属属性性基基本本类类似似其其主主要要属属性性是是ValueValue属属性性,,ValueValue属属性性指指示示其其所所处处的的状状态态::0 0表表示示没没有有选选中中,,1 1表示该项选中,表示该项选中,2 2表示禁止使用表示禁止使用 复复选选框框可可以以识识别别的的主主要要事事件件是是单单击击((ClickClick))事事件件程程序序运运行行中中,,当当用用户户单单击击复复选选框框时时将将触触发发其其ClickClick事事件件,,每每单单击击一一次次其其状状态态就就在在““没没有有选选中中””和和““选选中中””之之间间变变换换一一次次,,相相应应地地,,其其ValueValue属属性性的的值值在在0 0和和1 1之之间间变变换换因因此此,,当当发发生生了了ClickClick事事件件时时,,程程序序要要判判断断ValueValue属属性性的的值值,,以以便便确确定定是是否否选选中。
中6.1.2 6.1.2 复选框复选框 ((2 2)) 需需要要注注意意的的是是,,复复选选框框与与单单选选按按钮钮都都可可表表示示一一种种状状态态,,因因此此两两者者有有相相似似之之处处,,但但有有本本质质的的区区别别::一一组组复复选选框框中中的的多多个个项项目目是是相相互互“兼兼容容”的的,,一一组组单单选按钮中的多个项目却是相互选按钮中的多个项目却是相互“排斥排斥”的 【【例例6.26.2】】用用复复选选框框控控制制文文本本是是否否加加下下划划线线和和斜斜体体显示 在在窗窗体体上上添添加加一一个个文文本本框框,,两两个个复复选选框框属属性性设设置如置如表表6.26.2,运行界面如,运行界面如图图6.56.5所示图图6.5 例例6.2的运行结果的运行结果 为两个复选框的单击和窗体加载事件编写如下事件过程:为两个复选框的单击和窗体加载事件编写如下事件过程:Private Sub Check1_Click() ‘单击【下划线】复选框单击【下划线】复选框 If Check1.Value = 1 Then Text1.FontUnderline = True '加下划线加下划线 Else Text1.FontUnderline = False End IfEnd SubPrivate Sub Check2_Click() ‘单击【斜体】复选框单击【斜体】复选框 If Check2.Value = 1 Then Text1.FontItalic = True '斜体斜体 Else Text1.FontItalic = False End IfEnd SubPrivate Sub Form_Load() Text1.FontSize = 18End Sub6.1.2 6.1.2 复选框复选框 ((3 3)) 【【例例6.36.3】】用用户户信信息息的的收收集集是是一一类类常常见见的的应应用用程程序序。
本本例例要要求求编编写写程程序序收收集集用用户户选选择择的的专专业业类类别别和和选选修修课课程程其其中中,,可可选选择择的的专专业业类类别别有有“计计算算机机专专业业”和和“机机电电专专业业”,,可可选选择择的的课课程程有有“高高等数学等数学”、、“大学英语大学英语”和和“程序设计程序设计” 显显然然,,本本例例中中专专业业的的所所属属类类别别之之间间具具有有排排斥斥性性,,可可以以用用单单选选按按钮钮实实现现;;而而选选修修课课程程之之间间具具有有兼兼容容性性,,应应该该用用复复选选框框实实现现属属性性设设置置如如表表6.36.3,,其其中中将将Option1Option1的的ValueValue属属性性设设为为TrueTrue,,表表示示初初始始时时默默认选中认选中“计算机专业计算机专业”运行结果如运行结果如图图6.6 表表6.3 例例6.3的对象和属性设置的对象和属性设置 图图6.6 例例6.3的运行结果的运行结果 代代码码如如下下,,其其中中的的Chr(13)Chr(13)、、Chr(10)Chr(10)是是产产生生回回车车换换行行((亦亦可可用用VBVB常常数数vbCrLfvbCrLf));;为为了了简简化化代代码码,,将将所所收收集集到到的的用用户户选选择择信信息息用用MsgBoxMsgBox函数显示出来。
函数显示出来Private Sub Command1_Click() Dim str As String, link As String link = Chr(13) & Chr(10) If Option1.Value = True Then str = "计算机专业计算机专业" Else str = "机电专业机电专业" End If str = str & "选择了:选择了:" & link If Check1.Value = 1 Then str = str & link & "高等数学高等数学" If Check2.Value = 1 Then str = str & link & "大学英语大学英语" If Check3.Value = 1 Then str = str & link & "程序设计程序设计" MsgBox str, vbYesNo, "采集信息采集信息"End Sub返回首页返回本节6.1.3 6.1.3 框架框架 ((1 1)) 框框架架((FrameFrame))是是一一个个容容器器,,可可以以在在其其上上放放置置其其它它控控件件对对象象,,主主要要作作用用是是能能够够把把一一些些控控件件组组织织在在一一起起形形成成控控件件组组。
分分组组的的用用途途有有二二::一一是是单单纯纯地地对对其其它它控控件件分分组组,,使使功功能能上上密密切切相相关关的的控控件件在在一一个个框框定定的的区区域域内内,,以以便便用用户户分分类类识识别别;;二二是是用用于于为单选按钮分组为单选按钮分组 为为了了实实现现分分组组应应首首先先画画出出框框架架,,然然后后在在框框架架内内画画出出所所需需的的控控件件如如果果要要将将已已经经存存在在的的若若干干控控件件放放在在某某个个框框架架中中,,可可以以先先选选择择这这些些控控件件,,将将它它们们剪剪切切到到剪剪贴贴板板上上,,然然后后选选定定框框架架控控件件并并把把它它们们粘粘贴贴到到框框架架上上位位于于一一个个框框架架内内的的控控件件会会随随框框架架整整体体移动、隐藏、删除移动、隐藏、删除6.1.3 6.1.3 框架框架 ((2 2)) 框架的常用属性有:框架的常用属性有:Caption属性(设置框架标题,位属性(设置框架标题,位于框架的左上角)、于框架的左上角)、Enabled属性(是否有效)、属性(是否有效)、Visible属属性(是否可见)当框架的性(是否可见)。
当框架的Enabled属性为属性为False时,框架时,框架和框架内的控件均呈灰色,表示不可使用,相当于整体失和框架内的控件均呈灰色,表示不可使用,相当于整体失效;当框架的效;当框架的Visible属性为属性为False时,框架及其中的控件均时,框架及其中的控件均不可见,相当于整体隐藏不可见,相当于整体隐藏 【【例例6.46.4】】利利用用框框架架的的分分组组功功能能,,同同时时设设置置文文本本框框的的字字体体、、大小、颜色大小、颜色本本例例使使用用了了三三个个框框架架,,每每个个框框架架内内均均有有三三个个单单选选按按钮钮在在一一个个框框架架内内的的三三个个单单选选按按钮钮为为一一组组,,它它们们是是相相互互““排排斥斥””的的,,但但三三个个框框架架之之间间是是相相互互““兼兼容容””的的属属性性设设置置见见表表6.46.4运行结果如图运行结果如图6.86.8所示表表6.4 例例6.4的对象和属性设置的对象和属性设置 图图6.8 例例6.4运行结果运行结果程序代码如下:程序代码如下:Private Sub cmdNo_Click() ‘单击【恢复】按钮单击【恢复】按钮 Form_Load '执行执行Form_Load过程过程End SubPrivate Sub cmdOk_Click() ‘单击【应用】按钮单击【应用】按钮 '确定字体名确定字体名 If optFont1 = True Then Text1.FontName = "宋体宋体" If optFont2 = True Then Text1.FontName = "隶书隶书" If optFont3 = True Then Text1.FontName = "幼圆幼圆" '确定字体大小确定字体大小 If optSize1 = True Then Text1.FontSize = 12 If optSize2 = True Then Text1.FontSize = 14 If optSize3 = True Then Text1.FontSize = 20 '确定颜色确定颜色 If optColor1 = True Then Text1.ForeColor = vbBlue If optColor2 = True Then Text1.ForeColor = vbRed If optColor3 = True Then Text1.ForeColor = vbGreenEnd SubPrivate Sub Form_Load() '窗体加载窗体加载 optFont1 = True Text1.FontName = "宋体宋体" Text1.FontSize = 12 Text1.ForeColor = vbBlackEnd Sub返回首页返回本节6.2 6.2 列表类控件列表类控件 w6.2.1 6.2.1 列表框列表框 w6.2.2 6.2.2 组合框组合框 返回首页6.2.1 6.2.1 列表框列表框 ((1 1)) 1. 1. 列表框的功能列表框的功能 列表框(列表框(ListBoxListBox))显示由若干项目组成的列显示由若干项目组成的列表,用户可从中选择一个或多个项目。
所选择的表,用户可从中选择一个或多个项目所选择的项目被突出显示如果列表框中的项目过多,则项目被突出显示如果列表框中的项目过多,则系统会自动增加一个垂直滚动条,如图系统会自动增加一个垂直滚动条,如图6.96.9所示 图图6.9 列表框示意图列表框示意图 6.2.1 6.2.1 列表框列表框 ((2 2)) 列列表表框框中中的的项项目目可可以以在在设设计计状状态态下下通通过过属属性性窗窗口口设设定定,,也也可可以以在在运运行行状状态态下下由由程程序序加加入入前前者者使使用用列列表表框框的的ListList属属性性,,一一个个项项目目为为一一行行,,且且以以组组合合键键CtrlCtrl++回回车车进进行行分分行行,,如图如图6.106.10所示;后者使用列表框的所示;后者使用列表框的AddItemAddItem方法 列表框中的项目列表是一个整体,它列表框中的项目列表是一个整体,它实际上是一个数组(若干元素的有序集合)实际上是一个数组(若干元素的有序集合)列表框中的每个项目各占一行,所有项列表框中的每个项目各占一行,所有项目构成项目列表列表中的每一项(行)目构成项目列表。
列表中的每一项(行)都有自己的位置,用都有自己的位置,用““索引号索引号””来表示来表示(在数组中称为下标)列表中第一项的(在数组中称为下标)列表中第一项的索引号为索引号为0 0,第二项为,第二项为1 1,依此类推利用,依此类推利用索引号可以很方便地访问列表中的任何一索引号可以很方便地访问列表中的任何一个项目6.2.1 6.2.1 列表框列表框 ((3 3)) 2. 2. 常用属性常用属性((1 1))TextText属性属性 在在程程序序运运行行期期间间,,用用于于获获取取列列表表框框中中当当前前选选择择的的项项目目内内容该属性在设计时不可用该属性在设计时不可用 例例如如,,将将列列表表框框List1List1中中所所选选择择的的项项目目内内容容放放入入文文本本框框Text1Text1中:中:Text1.Text = List1.Text((2))ListCount和和List属性属性 ListCountListCount属属性性返返回回列列表表框框中中已已有有项项目目的的总总数数目目,,它它是是一一个个设设计计时时无无效效、、运运行行时时只只读读的的属属性性,,即即在在程程序序运运行行时时,,通通过过该该属属性性可可以以获获取取项项目目总总数数,,但但不不能能直直接接设设置置该该属属性性的的值值,,其值的变化是由其他操作自动决定的。
语法格式为:其值的变化是由其他操作自动决定的语法格式为: 列表框对象列表框对象.ListCount6.2.1 6.2.1 列表框列表框 ((4 4)) ListList属属性性用用来来访访问问列列表表框框中中的的全全部部项项目目内内容容该该属属性性实实际际是是一一个个字字符符串串数数组组,,数数组组中中的的每每个个元元素对应着列表框中的一个项目语法格式为:素对应着列表框中的一个项目语法格式为: 列表框对象列表框对象.List(索引号索引号) 其其中中的的参参数数““索索引引号号””指指明明数数组组中中的的元元素素下下标标,,即即第第几几个个元元素素,,它它的的取取值值从从0 0开开始始,,到到项项目目数数ListCountListCount--1 1止止如如果果某某个个列列表表框框含含有有5 5个个项项目目,,则则““索索引引号号””参参数数的的取取值值范范围围从从0 0到到4 4通通过过指指定定不不同同的的索索引引值值,,可可以以访访问问列列表表的的全全部部项项目目例例如如,,将列表框将列表框List1List1中的第中的第3 3项复制到文本框项复制到文本框Text1Text1中:中: Text1.Text = List1.List(2)6.2.1 6.2.1 列表框列表框 ((5 5))((3 3))ListIndexListIndex属性属性 返返回回当当前前已已选选定定项项目目的的位位置置((索索引引))号号。
未未选选定定项项目目时时,,返返回回的的ListIndexListIndex值值为为- -1 1该该属属性性只只在在运运行行时时可可用用当当单单击击列列表表框框中中的的一一个个项项目目后后,,项项目目的的索索引引号号((下下标标))便便存存储储在在ListIndexListIndex属属性性中中因因此此,,若若ListIndexListIndex值值不不是是- -1 1,,则则以下语句可显示当前选定的项目:以下语句可显示当前选定的项目:Print List1.List(List1.ListIndex)与与 Print List1.Text 等效等效反之,若对该属性赋值则可选定某一项目例如:反之,若对该属性赋值则可选定某一项目例如:List1.ListIndex = 0 '选定列表中的第一项选定列表中的第一项6.2.1 6.2.1 列表框列表框 ((6 6))((4 4))SelectedSelected属性属性 该该属属性性用用来来设设置置或或返返回回列列表表框框中中某某项项目目的的选选择择状状态态SelectedSelected属属性性也也是是一一个个数数组组,,每每个个数数组组元元素素与与列列表表框框中中的的一一个个项项目目相相对对应应,,用用法法也也和和ListList属属性性类类似似。
不不同同的的是是,,SelectedSelected属属性性数数组组取取逻逻辑辑值值TrueTrue、、FalseFalse若若为为TrueTrue则则表表示示相相应应的的项项目目被被选选择,若为择,若为FalseFalse则表示相应的项目没有被选择则表示相应的项目没有被选择 例例如如,,对对列列表表框框List1List1中中的的第第3 3项项而而言言,,如如果果单单击击该该项项目目使使之之被被选选定定,,则则List1.SelectedList1.Selected( (2 2) )的的值值就就会会等等于于TrueTrue;;如如果果执执行行语语句句List1.SelectedList1.Selected( (2 2) ) = = TrueTrue,, 则则 相相 当当 于于 选选 择择 第第 3 3项项 ,, 与与List1.ListIndex = 2List1.ListIndex = 2 等效 6.2.1 6.2.1 列表框列表框 ((7 7))((5 5))SortedSorted和和StyleStyle属性属性 SortedSorted属属性性确确定定列列表表框框中中的的项项目目是是否否排排序序。
其其值值设设置置为为FalseFalse((默默认认))时时项项目目不不排排序序,,若若为为TrueTrue则则项项目目按按照照字字母母升升序排列(不区分大小写)序排列(不区分大小写) StyleStyle属属性性确确定定列列表表框框的的样样式式取取值值为为0(0(默默认认值值) )和和1 1,,如如图图6.116.11所示这两个属性只能在设计时设置这两个属性只能在设计时设置 ((6 6))ColumnsColumns属性属性 使用使用ColumnsColumns属性可以创建多列列表框属性可以创建多列列表框 默默认认情情况况下下,,列列表表框框是是一一种种单单列列列列表表框框,,我我们们通通常常使使用用的的也也是是单单列列列列表表框框,,此此时时Columns=0Columns=0,,并并具具有有垂垂直直滚滚动动条条当当希希望望使使用用多多列列列列表表框框时时,,便便可可以以设设置置ColumnsColumns为为大大于于0 0的的值值,,表表示示具具有有若若干干列列和和水水平平滚滚动动条条Columns=0Columns=0时时和和Columns=2Columns=2时的列表框如时的列表框如图图6.126.12所示。
所示 图图6.11 列表框的样式列表框的样式 图图6.12 列表框的列表框的Columns属性属性 6.2.1 6.2.1 列表框列表框 ((8 8))((7 7))MultiSelectMultiSelect属性属性 MultiSelectMultiSelect属属性性的的默默认认取取值值为为0 0,,表表示示列列表表框框是是单单选选列列表表框框,,一一次次只只能能选选择择一一项项若若将将MultiSelectMultiSelect属属性性值值设设为为1 1或或2 2,,则则表表示示列列表表框框是是复复选选列列表表框框,,即即可可以以在在列列表表框框的的列列表表中中选选择择多多个个项项目目值值为为1 1时时,,用用鼠鼠标标单单击击或或按按空空格格键键进进行行复复选选;;为为2 2时时类类似似于于““资资源源管管理理器器””,,可可用用ShiftShift++鼠鼠标标单单击击((连连续续多多选选))、、CtrlCtrl++鼠鼠标标单单击击((不不连连续续多多选)等来进行复选选)等来进行复选6.2.1 6.2.1 列表框列表框 ((9 9)) 只只能能进进行行单单选选的的列列表表框框,,可可以以通通过过ListIndexListIndex属属性性或或SelectedSelected属属性性判判断断所所选选择择的的项项目目。
允允许许进进行行复复选选的的列列表表框框,,所所选选择择的的项项目目可可能能有有多多项项,,故故不不能能通通过过ListIndexListIndex属属性性判判断断,,一一般般是是通通过过SelectedSelected属属性性判判断断例例如如,,以以下下代代码码可可以以显示出所有被选择的项目:显示出所有被选择的项目:For i = 0 To List1.ListCount – 1 If List1.Selected(i) = True _ Then Print List1.List(i)Next I((8 8))NewIndexNewIndex属性属性 返返回回最最后后加加入入列列表表框框的的项项目目的的索索引引号号该该属属性性在在设设计计时时无效,运行时只读无效,运行时只读6.2.1 6.2.1 列表框列表框 ((1010)) 3. 3. 主要方法主要方法((1 1))AddItemAddItem方法方法 AddItemAddItem方方法法用用来来向向列列表表框框中中添添加加一一个个项项目目语语法格式为:法格式为: 列表框对象列表框对象.AddItem 项目项目[, 索引号索引号] 其其中中““项项目目””为为字字符符串串表表达达式式,,表表示示新新加加项项目目的的内内容容。
索索引引号号””指指定定添添加加( (插插入入) )的的项项目目在在列列表表中中的的位位置置,,省省略略参参数数““索索引引号号””时时,,添添加加的的项项目目排排列列在在列列表表的的最最后后( (追追加加) )若若指指明明索索引引号号,,当当添加了一个项目后,其后项目的位置号自动重排添加了一个项目后,其后项目的位置号自动重排 6.2.1 6.2.1 列表框列表框 ((1111))例如,将例如,将““石家庄石家庄””追加到列表框追加到列表框List1List1中:中:List1.AddItem "石家庄石家庄"又又如如,,如如果果在在列列表表框框List1List1中中选选择择了了一一个个项项目目((可可能能复复选选)),,则则以以下下代代码码可可将将被被选选定定的的项项目目追追加加到到列表框列表框List2List2中:中:For i = 0 To List1.ListCount - 1 If List1.Selected(i) Then List2.AddItem List1.List(i) End IfNext i6.2.1 6.2.1 列表框列表框 ((1212))((2 2))RemoveItemRemoveItem方法方法 RemoveItemRemoveItem方方法法用用来来从从列列表表框框中中删删除除一一个个项项目目。
语语法法格格式为:式为: 列表框对象列表框对象.RemoveItem 索引号索引号 其其中中““索索引引号号””指指定定要要删删除除的的项项目目在在列列表表中中的的位位置置当当删删除除一一个个项项目目后后,,其其后后项项目目的的位位置置号号也也自自动动重重排排例例如如,,删除列表框删除列表框List1List1中的第一项:中的第一项: List1.RemoveItem 0((3 3))ClearClear方法方法 Clear Clear方法清除列表框中所有项目语法格式为:方法清除列表框中所有项目语法格式为: 列表框对象列表框对象.Clear6.2.1 6.2.1 列表框列表框 ((1313))4 4.主要事件.主要事件 列列表表框框的的主主要要事事件件是是ClickClick事事件件和和DblClickDblClick事事件件ClickClick事事件件在在单单击击选选择择一一个个项项目目时时被被触触发发,,DblClickDblClick事事件件在在双双击击一个项目时被触发一个项目时被触发 要要注注意意的的是是,,如如果果在在ClickClick事事件件过过程程中中有有代代码码,,则则不不会会触触发发DblClickDblClick事事件件。
在在通通常常的的操操作作中中,,单单击击一一个个项项目目后后再再配配合合一一个个确确认认按按钮钮来来表表示示选选中中;;而而双双击击一一个个项项目目则则往往往往表表示示直直接接选选中中为为达达到到此此效效果果,,需需要要为为DblClickDblClick事事件件设设置置代代码码,,但但不不为为ClickClick事事件件设设置置代代码码,,同同时时使使用用一一个个具具有有““确确认认””功功能能的的命命令令按按钮钮,,在在命命令令按按钮钮的的代代码码中中检检查查列列表表框框的的ListIndexListIndex属属性性或或SelectedSelected属属性性,,以以判判断断是是否否有有项项目目被被选选中以及哪一个项目被选中中以及哪一个项目被选中【【例例6.56.5】】使使用用列列表表框框显显示示城城市市名名称称,,供供用用户户选选择择,,当当单单击击““确确定定””按按钮钮时时,,显显示示所所选选择择的的城城市市名名称称当当双双击击列列表表框框中中的的项项目目时,则直接显示所选择的城市名称时,则直接显示所选择的城市名称属性设置如表属性设置如表6.56.5,运行结果如图,运行结果如图6.136.13所示。
程序代码如下:所示程序代码如下:Private Sub cmdOk_Click() ‘单击【确定】按钮显示所选城市名称单击【确定】按钮显示所选城市名称 If List1.ListIndex <> -1 Then Label1.Caption = List1.List(List1.ListIndex) Else Label1.Caption = "" End IfEnd Sub'双击列表框中的项目,直接显示所选城市名称双击列表框中的项目,直接显示所选城市名称Private Sub List1_DblClick() Label1.Caption = List1.List(List1.ListIndex)End Sub【【例例6.66.6】】设设计计一一个个选选择择购购买买图图书书种种类类的的程程序序,,程程序序的的运运行行结结果果如如图图6.146.14所所示 设设计计思思路路::使使用用两两个个列列表表框框,,左左边边的的列列表表框框List1List1显显示示现现有有书书目目,,右右边边的的列列表表框框List2List2显显示示用用户户选选择择的的拟拟购购书书目目;;四四个个命命令令按按钮钮cmdAllcmdAll、、cmdOnecmdOne、、cmdBackAllcmdBackAll和和cmdBackOnecmdBackOne的的CaptionCaption属属性性分分别别设设为为“>>”“>>”、、“>”“>”、、“<<”“<<”、、“<”“<”,,形形象象地地表表示示购购买买所所有有书书目目、、购购买买选选择择的的一一个个书书目目、、退退回回所所有有书书目目、、退退回回选选择择的的一一个个书书目目;;另另设设两两个个标标签签Label1Label1和和Label2Label2,,其其CaptionCaption属属性性分分别别设设为为【【现现有有书书目目】】和和【【拟拟购购书书目目】】;;当当用用户户选选择择好好计计划划购购买买的的书书目目时时,,单单击击标标题题为为【【确确定定】】的的命命令令按按钮钮cmdOkcmdOk,,弹弹出出【【购购买买确确认认】】消消息息框框,,单单击击【【是是】】,,执行购买操作。
执行购买操作返回首页返回本节6.2.2 6.2.2 组合框(组合框(1 1)) 组组合合框框((ComboBoxComboBox))控控件件将将文文本本框框和和列列表表框框的的功功能能结结合合在在一一起起,,既既具具有有文文本本框框的的输输入入功功能能,,又又具具有有列列表表框框的的选选择择功功能能通通过过组组合合框框,,用用户户既既可可输入文本内容,也可从列表中选择项目输入文本内容,也可从列表中选择项目 组组合合框框的的样样式式特特点点由由StyleStyle属属性性确确定定共共可可设设置置三三种种样样式式::StyleStyle==0 0时时,,称称为为下下拉拉式式组组合合框框((可可编编辑辑输输入入,,可可选选择择项项目目));;StyleStyle==1 1时时,,称称为为简简单单组组合合框框((可可编编辑辑输输入入,,可可选选择择项项目目));;StyleStyle==2 2时时,,称称为为下下拉拉式式列列表表框框((不不可可输输入入,,只只可可选选择择项项目)6.2.2 6.2.2 组合框(组合框(2 2)) 图图6.156.15是是组组合合框框三三种种样样式式的的示示意意图图。
其其中中,,左左边边是是下下拉拉式式组组合合框框展展开开后后的的状状态态;;中中间间是是简简单单组组合合框框的的实实际际状状态态;;右右边边是是下下拉拉式式列列表表框框展展开后的状态开后的状态 在使用方式上,组合框具有和列表框相似的特在使用方式上,组合框具有和列表框相似的特征组合框的主要属性有征组合框的主要属性有TextText、、ListList、、ListIndexListIndex、、ListCountListCount和和SortedSorted等,主要方法有等,主要方法有AddItemAddItem、、RemoveItemRemoveItem和和ClearClear组合框的主要事件是组合框的主要事件是ClickClick事事件当StyleStyle==1 1时,还支持时,还支持DblClickDblClick事件6.2.2 6.2.2 组合框(组合框(3 3))【【例例6.76.7】】用用组组合合框框提提供供商商品品类类别别,,用用列列表表框框提提供供产产品品名名称称,,设设计计一一个个产产品品信信息息查查询询程程序序程程序序的运行结果如图的运行结果如图6.166.16所示。
所示 图图6.16 例例6.7的运行结果的运行结果 6.2.2 6.2.2 组合框(组合框(4 4)) 程程 序序 运运 行行 时时 ,, 先先 隐隐 藏藏 标标 签签 Label1Label1、、 命命 令令 按按 钮钮cmdReturncmdReturn,,并并向向组组合合框框Combo1Combo1追追加加项项目目,,见见Form_LoadForm_Load事事件件代代码码当当单单击击命命令令按按钮钮cmdShowcmdShow时时,,隐隐藏藏组组合合框框Combo1Combo1、、列列表表框框List1List1以以及及按按钮钮cmdReturncmdReturn和和cmdEndcmdEnd,,并并显显示示标标签签Label1Label1和和按按钮钮cmdReturncmdReturn当当单单击击命命令令按按钮钮cmdReturncmdReturn时时,,再再次次隐隐藏藏Label1Label1、、cmdReturncmdReturn,,并并显显示示Combo1Combo1、、List1List1、、cmdShowcmdShow和和cmdEndcmdEnd。
这这相相当当于于在在窗窗口口的的同同一一区区域域内内交交替替显显示示不不同同的的控控件件,,是是一一种种实实用用的的设设计计技技术术为为了了获获得得较较好好的的视视觉觉效效果果,,设设计计时时应应该该对对控控件件的的大大小小、、位位置置等等精精心心安安排排和和调调整整如如果果需需要要交交替替显显示示的的控控件件数目较多,应该考虑使用框架数目较多,应该考虑使用框架6.2.2 6.2.2 组合框(组合框(5 5)) 当当用用户户在在组组合合框框中中选选择择了了商商品品类类别别时时,,根根据据所所选选类类别别填填充充产产品品名名称称列列表表框框当当用用户户选选择择了了列列表表框框中中的的项项目目((产产品品名名称称))并并单单击击【【显显示示商商品品信信息息】】按按钮钮时时,,根根据据用用户户在在组组合合框框中中选选择择的的类类别别((家家电电类类、、图图书书类类、、体体育育类类)),,通通过过标标签显示商品的类别、名称和价格签显示商品的类别、名称和价格 试一试试一试:: 教教材材代代码码中中用用于于处处理理控控件件显显示示状状态态的的语语句句行行较较多多,,烦烦琐琐且且容容易易出出错错。
从从本本程程序序的的功功能能中中可可以以看看出出,,交交替替显显示示的的控控件件可可分分为为两两组组因因此此可可以以将将它它们们分分别别放放在在两两个个框框架架((FrameFrame))中中,,将将两两个个框框架架设设置置为为同同样样大大小小,,在在设设计计时时((或或在在窗窗体体的的LoadLoad事事件件中中))将将两两个个框框架架的的位位置置重重合合这样,用于处理控件显示状态的代码只需两行语句:这样,用于处理控件显示状态的代码只需两行语句:Frame1.Visible = True '或或FalseFrame2.Visible = False '或或True返回首页返回本节6.3 6.3 图像显示控件图像显示控件 w6.3.1 6.3.1 图片框图片框 w6.3.2 6.3.2 图像框图像框 返回首页6.3.1 6.3.1 图片框图片框 ((1 1)) 图图片片框框((PictureBoxPictureBox))既既可可以以用用来来显显示示图图像像,,也也可可以以作作为为其其它它控控件件的的容容器器,,起起到到类类似似于于框框架架及及窗窗体体的的作作用用。
它它可可以以使使用用多多种种类类型型的的图图形形文文件件::位位图图((bitmapbitmap,,扩扩展展名名为为. .bmpbmp))、、图图标标((iconicon,,扩扩展展名名为为. .icoico))、、WindowsWindows元元文文件件((metafilemetafile,,扩扩展展名名为为. .wmfwmf))以以及及JPEGJPEG和和GIFGIF文文件件图图片片框框还还和和以以前前介介绍绍的窗体一样,支持各种绘图方法的窗体一样,支持各种绘图方法 6.3.1 6.3.1 图片框图片框 ((2 2))1 1.主要属性.主要属性((1 1))PicturePicture属性属性设设置置要要显显示示的的图图形形,,支支持持bmpbmp、、jpgjpg、、icoico、、wmfwmf等等文文件件类类型型图图形形文文件件可可以以在在设设计计阶阶段段装装入入,,也也可可以以在在运行期间装入运行期间装入在在设设计计状状态态下下,,可可以以通通过过属属性性窗窗口口中中的的Picture Picture 属属性性指指定定图图形形文文件件在在运运行行时时,,PicturePicture属属性性和和LoadPictureLoadPicture函函数数配配合合,,将将图图形形加加载载到到控控件件上上。
LoadPictureLoadPicture函数格式如下:函数格式如下:LoadPictureLoadPicture( ([ [文件名文件名] ]) )若省略文件名,则清除控件中的图形若省略文件名,则清除控件中的图形6.3.1 6.3.1 图片框图片框 ((3 3))例例如如,,若若图图片片框框控控件件的的名名称称为为PNamePName,,则则在在程程序序中中装装载载和和清清除图形的方法如下:除图形的方法如下:装入图形到控件:装入图形到控件:PName.Picture = LoadPicture("c:\image\aa.bmp") 删除控件中图形:删除控件中图形:PName.Picture = Nothing 或:或:Set PName.Picture = Nothing或:或:PName.Picture = LoadPicture()向向图图片片框框控控件件装装入入图图形形,,还还可可以以通通过过剪剪贴贴板板进进行行首首先先通通过过WindowWindow常常规规操操作作向向剪剪贴贴板板放放入入图图像像;;然然后后在在VBVB的的设设计计状状态下选中图片框控件,执行【编辑态下选中图片框控件,执行【编辑| |粘贴】命令。
粘贴】命令 6.3.1 6.3.1 图片框图片框 ((4 4))((2 2))AutosizeAutosize属性属性 该该属属性性设设置置图图片片框框是是否否会会根根据据装装入入图图形形的的大大小小作作自自动动调调整整默默认认值值为为FalseFalse,,表表示示图图片片框框的的大大小小不不会会自自动动改改变变,,对对于于较较大大的的图图片片,,显显示示不不下下的的部部分分被被隐隐藏藏;;当当值值为为TrueTrue时时,,表表示示自自动动改改变变图图片片框框的的尺尺寸寸,,以以适适应应图图形形的的大大小小,,如如图图6.176.17所示图图6.17 图片框的图片框的Autosize属性属性 6.3.1 6.3.1 图片框图片框 ((5 5))2 2.主要方法和事件.主要方法和事件((1 1))PrintPrint和和ClsCls方法方法这两个方法的使用与窗体相同,不再赘述这两个方法的使用与窗体相同,不再赘述2 2)绘图方法)绘图方法 绘绘图图方方法法包包括括LineLine、、CircleCircle、、PsetPset和和PointPoint方方法法这这些些方方法法可可用用于于图图片片框框和和窗窗体体,,详详细细内内容容将将在在第第1212章介绍。
章介绍3 3))TextHeightTextHeight和和TextWidthTextWidth方法方法 用用于于返返回回指指定定字字符符串串输输出出时时的的高高度度和和宽宽度度,,常常与与PrintPrint方法配合使用窗体也具有这两个方法方法配合使用窗体也具有这两个方法 图图片片框框支支持持常常用用的的鼠鼠标标事事件件、、键键盘盘事事件件和和焦焦点点事事件等 6.3.1 6.3.1 图片框图片框 ((6 6)) 【【例例6.86.8】】用用图图片片框框显显示示文文字字程程序序运运行行时时先先在在文文本本框框中中输输入入内内容容,,单单击击“→”“→”按按钮钮后后将将文文本本框框中中的的内内容容显显示示在在图图片片框框中中运行结果如图运行结果如图6.186.18所示 在窗体上添加一个文本框在窗体上添加一个文本框Text1Text1,,设设MultiLineMultiLine属性为属性为TrueTrue,,TextText属性为空添加一个图片框属性为空添加一个图片框Picture1Picture1,,设设AutoRedrawAutoRedraw属性为属性为TrueTrue,,背景色为背景色为白色。
添加两个标签,白色添加两个标签,CaptionCaption属性分别为属性分别为““文文本框本框””和和““图片框图片框””添加一个命令按钮添加一个命令按钮Command1Command1,,CaptionCaption属性为属性为“→”“→”6.3.1 6.3.1 图片框图片框 ((7 7)) 编编程程思思路路::用用PrintPrint方方法法在在图图片片框框中中显显示示文文字字时时,,若若内内容容较较多多,,超超出出图图片片框框宽宽度度的的部部分分将将被被截截掉掉为为了了能能够够像像多多行行文文本本框框那那样样自自动动换换行行,,可可以以利利用用图图片片框框的的CurrentXCurrentX属属性性和和TextWidthTextWidth方方法法具具体体做做法法是是利利用用循循环环结结构构,,一一次次只只输输出出一一个个字字符符,,每每次次输输出出前前先先作作检检查查,,如如果果下下一一字字符符的的输输出出位位置置将超过图片框的宽度时则换行代码如下:将超过图片框的宽度时则换行代码如下:Private Sub Command1_Click() '单击单击“→→”按钮按钮 Dim strS As String, tmp As String Dim intW As Integer, i As Integer strS = Text1.Text '取文本框中的内容存入变量取文本框中的内容存入变量 Picture1.Cls For i = 1 To Len(strS) '通过循环每次输出一个字符通过循环每次输出一个字符 tmp = Mid(strS, i, 1) '取第取第i个字符个字符 intW = Picture1.TextWidth(tmp)'取第取第i字符的宽度字符的宽度 '如果第如果第i字符的宽度字符的宽度+当前输出位置当前输出位置CurrentX超过图片框的宽度则换行超过图片框的宽度则换行 If intW + Picture1.CurrentX > Picture1.Width Then Picture1.Print End If Picture1.Print tmp; '输出第输出第i个字符。
注意分号个字符注意分号 NextEnd Sub 窗窗 体体 对对 象象 也也 具具 有有 AutoRedraw、、 CurrentX和和 CurrentY属属 性性 以以 及及TextHeight和和TextWidth方方法法利利用用这这些些属属性性和和方方法法可可以以在在窗窗体体((或或图图片片框框))中中显显示示特特殊殊效效果果文文字字例例如如,,为为窗窗体体的的单单击击事事件件编编写写代代码码((见见教教材材)),,可以在窗体上显示如图可以在窗体上显示如图6.19所示的立体字和阴影字所示的立体字和阴影字 图图6.19 特殊效果文字特殊效果文字 返回首页返回本节6.3.2 图像框((1 1)) 图图像像框框控控件件((ImageImage))的的使使用用方方法法与与图图片片框框((PictureBoxPictureBox))类类似似,,但但它它只只能能用用来来显显示示图图像像,,不能完成复杂的图像操作不能完成复杂的图像操作 ImageImage控控件件的的属属性性主主要要是是PicturePicture属属性性和和StretchStretch属属性性其其PicturePicture属属性性的的意意义义和和用用法法与与PictureBoxPictureBox控控件件相相同同。
StretchStretch属属性性可可以以决决定定所所加加载载的的图图片片是是否否缩缩放放,,默默认认值值为为FalseFalse,,表表示示图图片片不不缩缩放放,,控控件件的的大大小小由由图图片片决决定定,,即即控控件件自自动动适适应应图图片片的的大大小小;;当当StretchStretch属属性性为为TrueTrue时时控控件件的的大大小小不不变变,,图图片片自自动动伸伸缩缩((放放大大或或缩缩小小))以以便便适适合合控控件件图图6.206.20展展示了示了StretchStretch属性不同取值的效果属性不同取值的效果6.3.2 图像框((2 2)) 其其中中左左图图为为设设计计时时界界面面,,右右图图为为运运行行时时界界面面从从图图中中可可以以看看出出,,当当StretchStretch属属性性为为FalseFalse时时,,尽尽管管在在设设计计时时将将几几个个ImageImage控控件件设设为为不不同同大大小小,,但但运运行行时时,,控控件件均均自自动动调调整整为为图图片的大小片的大小 图图6.20 Stretch属性示例属性示例 6.3.2 图像框((3 3)) Image Image控件与控件与PictureBoxPictureBox控件的比较如下:控件的比较如下: 1. 1. 两两者者都都可可加加载载图图片片,,都都支支持持相相同同的的图图片片格格式式,,加加载载图图片片的的方方法法也也一一样样。
但但PictureBoxPictureBox控控件件的的图图形形功功能能更更强强,,而而ImageImage控控件件由由于于属属性性少少,,使使用用的的系系统统资资源源比比PictureBoxPictureBox控控件件少,装载图形的速度快少,装载图形的速度快 2. 2. ImageImage控控件件中中,,通通过过设设置置StretchStretch属属性性为为TrueTrue可可以以实实现现图图片片缩缩放放以以适适合合控控件件的的大大小小,,但但图图片片可可能能变变形形失失真真;;在在PictureBoxPictureBox控控件件中中,,仅仅可可通通过过AutosizeAutosize属属性性调调整整控控件件的的大大小小以适合图形,图形本身并不缩放以适合图形,图形本身并不缩放 3. 3. PictureBoxPictureBox控控件件可可以以作作为为其其它它控控件件的的容容器器,,其其内内允允许许包包括括其其它它控控件件,,起起到到类类似似于于框框架架的的作作用用,,还还支支持持各各种种绘绘图图方法和方法和PrintPrint方法;而方法;而ImageImage控件则不能。
控件则不能 6.3.2 图像框((4 4)) 【【例例6.96.9】】设设计计一一个个程程序序,,根根据据用用户户指指定定的的图图像像文文件件显显示示图图像像为为了了实实现现文文件件选选择择功功能能,,本本例例使使用用了了上上一一章章介介绍绍的的通通用用对对话话框框中中的的““打打开开””对对话话框框,,在在代代码码中中将将对对话话框框的的FilterFilter属属性性 (( 文文 件件 过过 滤滤 器器 )) 设设 置置 为为*.*.bmpbmp、、*.jpg*.jpg、、*.*.icoico和和*.**.* 另另外外,,两两个个命命令令按按钮钮cmdClscmdCls、、cmdLoadcmdLoad分分别别清清除除和和装装载载给给定定的的图图像像,,标标签签控控件件显显示示所所选选择择的的图图像像文文件件名名称称程程序序的运行结果如图的运行结果如图6.216.21所示程序代码如下:程序代码如下:Private Sub cmdCls_Click() '单击单击“清除清除”按钮按钮 Image1.Picture = LoadPicture("") Label1.Caption = ""End SubPrivate Sub cmdLoad_Click() '单击单击“装载装载”按钮按钮 On Error GoTo ErrCancel CommonDialog1.CancelError = True CommonDialog1.Filter = "BMP(*.bmp)|*.bmp|" & _ "JPG(*.jpg)|*.jpg|ICO(*.ico)|*.ico|All(*.*)|*.*" CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName) Label1.Caption = CommonDialog1.FileName Exit SubErrCancel: Label1.Caption = "No File"End Sub返回首页返回本节6.4 6.4 定时器(定时器(1 1)) 定定时时器器((TimerTimer))或或称称计计时时器器,,是是一一个个响响应应时时间间的的控控件件。
它它独独立立于于用用户户,,运运行行时时不不可可见见,,可可用用来来在一定的时间间隔中周期性地执行某项操作在一定的时间间隔中周期性地执行某项操作1 1.主要属性.主要属性((1 1))EnabledEnabled属性属性 设设置置定定时时器器是是否否生生效效当当该该属属性性为为TrueTrue((默默认认值值))时时,,定定时时器器处处于于工工作作状状态态((生生效效));;而而当当EnabledEnabled被被设设置置为为FalseFalse时时,,它它会会暂暂停停操操作作而而处处于于待待命命状状态态(无效)6.4 6.4 定时器(定时器(2 2)) ((2 2))IntervalInterval属性属性 设设置置定定时时器器的的时时间间间间隔隔,,单单位位为为毫毫秒秒((10001000毫毫秒秒==1 1秒秒)),,取取值值范范围围为为0 0~~6553565535,,因因此此最最大大时时间间间间隔隔约约为为65.565.5秒秒尽尽管管设设置置值值可可取取1 1毫毫秒秒,,但但在在Windows Windows 9x9x下下,,实实际际最最短短间间隔隔仅仅能能达达到到1/181/18秒秒((约约5656msms)),,在在Windows Windows 2000/XP2000/XP下下,,实实际际最最短短间间隔隔可可达达1010msms。
要要注注意意的的是是,,IntervalInterval属属性性的的默默认认值值是是0 0,,此此时时,,即即使使EnabledEnabled属属性性为为TrueTrue,,定定时时器仍无效器仍无效 6.4 6.4 定时器(定时器(3 3)) 2 2.事件.事件 定定时时器器只只能能识识别别TimerTimer事事件件当当到到达达由由IntervalInterval属属性性所所设设定定的的时时间间间间隔隔时时,,系系统统会会自自动动触触发发其其TimerTimer事事件件,,转转去去执执行行TimerTimer事事件件中中的的代代码码,,从从而而完完成成指指定定的的操操作作,,接接着着又又开开始始新新一一轮轮的的计计时时这这样样,,TimerTimer事事件件中中的的代代码可以每隔一个时间段就被执行一次码可以每隔一个时间段就被执行一次6.4 6.4 定时器(定时器(4 4)) 【例【例6.106.10】设计数字时钟,动态显示系统当前时间设计数字时钟,动态显示系统当前时间通通过过标标准准函函数数TimeTime可可以以取取得得系系统统的的当当前前时时间间,,要要使使其其动动态态显显示示出出来来则则可可以以使使用用定定时时器器控控件件实实现现。
在在窗窗体体上上添添加加一一个个定定时时器器Timer1Timer1,,设设EnabledEnabled属属性性为为TrueTrue,,IntervalInterval属属性性为为10001000(( 即即 1 1秒秒 )) 添添 加加 一一 个个 标标 签签 ,, 设设 CaptionCaption为为 空空 ,,AlignmentAlignment为为2 2,背景色为黑色,前景色为浅绿色背景色为黑色,前景色为浅绿色为定时器为定时器TimerTimer事件编写以下代码:事件编写以下代码:Private Sub Timer1_Timer() '调用调用Time函数在标签中显示时间函数在标签中显示时间 Label1.Caption = TimeEnd Sub6.4 6.4 定时器(定时器(5 5)) 【例【例6.116.11】用定时器控件制作秒表用定时器控件制作秒表设设计计和和运运行行界界面面如如图图6.236.23所所示示,,其其中中左左图图为为设设计计界面,中图和右图为运行界面界面,中图和右图为运行界面图图6.23 例例6.11设计和运行界面设计和运行界面 6.4 6.4 定时器(定时器(6 6)) ((1 1)设计界面及设置属性)设计界面及设置属性 在在窗窗体体上上添添加加一一个个定定时时器器Timer1Timer1,,设设EnabledEnabled属属性性为为FalseFalse,,IntervalInterval属属性性为为1010。
添添加加一一个个标标签签Label1Label1用用于于显显示示计计时时时时间间,,设设其其CaptionCaption为为“0:00:00.00”“0:00:00.00”,,AlignmentAlignment为为2 2,,背背景景色色为为黑黑色色,,前前景景色色为为浅浅绿绿色色再再添添加加两两个个命命令令按按钮钮,,名名称称分分别别为为cmdTimecmdTime和和cmdResetcmdReset,,设设CaptionCaption分分别别为为““开开始始””和和““清零清零”” 6.4 6.4 定时器(定时器(7 7)) ((2 2)编写代码)编写代码 为为了了简简化化界界面面,,便便于于用用户户操操作作,,本本例例中中通通过过代代码码让让cmdTimecmdTime按按钮钮““身身兼兼三三职职””,,完完成成开开始始、、暂暂停停和和继继续续功功能能程程序序启启动动时时该该按按钮钮的的标标题题为为【【开开始始】】单单击击【【开开始始】】,,开开始始计计时时,,按按钮钮变变为为【【暂暂停停】】单单击击【【暂暂停停】】,,定定时时器器停停止止工工作作,,按按钮钮变变为为【【继继续续】】。
单单击击【【继继续续】】,,继继续续计计时时,,按按钮钮又又变变为为【【暂暂停停】】单单击击【【清清零零】】按按钮钮,,定定时时器器停停止止工工作作,,标标签签中中的的计计时时读读数数置置0 0,,cmdTimecmdTime按按钮钮的的标标题题恢恢复复为【开始】为【开始】6.4 6.4 定时器(定时器(8 8)) 制制作作秒秒表表的的几几个个关关键键环环节节::①①记记录录开开始始计计时时的的时时间间,,可可以以通通过过调调用用VBVB内内部部函函数数TimerTimer为为变变量量赋赋值值来来实实现现该该函函数数返返回回从从午午夜夜零零点点开开始始至至当当前前时时刻刻的的总总秒秒数数((SingleSingle型型数数据据,,精精度度为为7 7位位))②②计计算算开开始始计计时时至至当当前前时时刻刻的的时时间间差差,,用用TimerTimer函函数数的的返返回回值值减减去去开开始始计计时时的的时时刻刻即即可可获获得得该该时时间间差差③③在在系系统统允允许许的的最最短短时时间间间间隔隔内内将将时时间间差差以以““时时: :分分: :秒秒. .xx”xx”的的形形式式显显示示适适当当设设置置定定时时器器控控件件的的IntervalInterval属属性性,,在在定定时时器器的的TimerTimer事事件件中中将将时时间间差差总总秒秒数数转转换换为为时时、、分分、、秒秒,,并并调调用用FormatFormat函函数数以以特特定定的的时时间间格格式式显显示示。
为为完完成成上上述述功功能能,,需需要要设设置若干变量,用于存储和计算有关的时间数据置若干变量,用于存储和计算有关的时间数据 6.4 6.4 定时器(定时器(9 9)) 【【例例6.126.12】设计一个具有简单动画效果的程序设计一个具有简单动画效果的程序 编编程程思思路路::将将一一个个装装有有图图片片的的图图像像框框在在定定时时器器的的每每个个TimerTimer事事件件中中按按一一定定方方向向和和距距离离移移动动,,即即可可实实现现简简单单的的动动画画效效果果设设计计动动画画程程序序首首先先要要选选择择一一个个合合适适的的图图像像文文件件,,本本例例选选择择的的是是ARW11NE.ICOARW11NE.ICO文文件件在在窗窗体体上上放放置置一一个个计计时时器器控控件件Timer1Timer1,,IntervalInterval属属性性设设置置为为5050添添加加一一个个图图像像框框控控件件Image1Image1,,设设PicturePicture属属性性为为上上述述图图像像文文件件设设计计界界面面如如图图6.246.24所所示示运运行行时时可可看看到到图图中中的的箭箭头头周周而而复始地从左下向右上移动。
复始地从左下向右上移动 代码如下:代码如下:Private Sub Form_Load() '窗体加载窗体加载 Me.Height = 4000 Me.Width = 6000 Image1.Top = Me.Height '图像框定位图像框定位 Image1.Left = 0End Sub图图6.24 例例6.12的界面设计的界面设计Private Sub Timer1_Timer() '定时器事件定时器事件 Dim x As Integer, y As Integer x = Image1.Left + 50 '设置图像框的新位置参数设置图像框的新位置参数(向右上向右上) y = Image1.Top - 50 '若新位置移出窗体则回到初始位置若新位置移出窗体则回到初始位置 If x > Me.Width Or y < 0 Then x = 0 y = Me.Height End If Image1.Move x, y '移动图像框到新位置移动图像框到新位置End SubPrivate Sub Form_Unload(Cancel As Integer) '窗体卸载窗体卸载 '关闭定时器。
亦可用关闭定时器亦可用End语句结束运行语句结束运行 Timer1.Enabled = FalseEnd Sub返回首页6.5 6.5 滚动条滚动条 ((1 1)) VBVB提提供供了了两两种种滚滚动动条条控控件件::水水平平滚滚动动条条((HscrollBarHscrollBar))和和垂垂直直滚滚动动条条((VscrollBarVscrollBar))两两者者除除滚滚动动的的方方向向不不同同外外,,其其功功能能和和操操作作是是一一样样的的滚滚动动条条的的两两端端各各有有一一个个滚滚动动箭箭头头,,在在滚滚动动箭箭头头之之间间有有一一个个滚滚动动块块滚滚动动块块从从一一端端移移至至另另一一端端时时,,其其值值在在不不断断变变化化垂垂直直滚滚动动条条的的值值由由上上往往下下递递增增,,水水平平滚滚动动条条的的值值由由左左往往右右递递增增滚滚动动条条的的值值均均以以整整数数表表示示,,取取值值范范围围为为- -3276832768~~3276732767,,最最小值和最大值分别在两个端点小值和最大值分别在两个端点 6.5 6.5 滚动条滚动条 ((2 2)) 1.1.常用属性常用属性((1 1))MinMin属性属性设置滚动条所能代表的最小值,默认值为设置滚动条所能代表的最小值,默认值为0 0。
2 2))MaxMax属性属性设置滚动条所能代表的最大值,默认值为设置滚动条所能代表的最大值,默认值为32767327673 3))ValueValue属性属性设设置置或或返返回回滚滚动动条条当当前前表表示示的的值值,,也也即即当当前前滑滑块块的位置6.5 6.5 滚动条滚动条 ((3 3)) ((4 4))SmallChangeSmallChange属性属性最最小小变变化化值值,,当当鼠鼠标标单单击击滚滚动动条条上上的的箭箭头头时时,,一一次产生的变化值次产生的变化值5 5))LargeChangeLargeChange属性属性最最大大变变化化值值,,当当鼠鼠标标单单击击滚滚动动条条滑滑块块与与箭箭头头之之间间的空白区域时,一次产生的变化值的空白区域时,一次产生的变化值 6.5 6.5 滚动条滚动条 ((4 4)) 2 2.主要事件.主要事件((1 1))ChangeChange事件事件当当滚滚动动条条的的ValueValue值值发发生生改改变变时时,,触触发发ChangeChange事事件件能能引引起起滚滚动动条条ValueValue值值改改变变的的操操作作包包括括::单单击击滚滚动动条条两两端端的的箭箭头头、、单单击击箭箭头头与与滑滑块块之之间间的的区区域域、、直直接接对对ValueValue属属性性赋赋值值等。
等 ((2 2))ScrollScroll事件事件当拖动滚动条的滑块时产生当拖动滚动条的滑块时产生ScrollScroll事件注注意意::ChangChang事事件件和和ScrollScroll事事件件是是有有差差异异的的,,当当开开始始拖拖动动滑滑块块后后,,只只要要拖拖动动动动作作在在继继续续,,就就会会不不断断地地产产生生ScrollScroll事事件;当拖动停止时,则产生件;当拖动停止时,则产生ChangeChange事件 6.5 6.5 滚动条滚动条 ((5 5)) 【例【例6.136.13】设计程序】设计程序, ,利用滚动条控件控制颜色改变利用滚动条控件控制颜色改变 利利用用VBVB提提供供的的标标准准函函数数RGBRGB可可以以方方便便地地设设置置颜颜色色,,RGBRGB函数的语法格式如下:函数的语法格式如下:RGB(红红, 绿绿, 蓝蓝)红红、、绿绿、、蓝蓝三三个个参参数数的的取取值值范范围围均均为为0 0~~255255只只要要控控制制函函数数RGBRGB的的三三个个参参数数即即可可设设置置不不同同颜颜色色,,这这可可以以由由三三个个滚滚动动条条完完成成。
程程序序中中使使用用了了三三个个水水平平滚滚动动条条::hsbRhsbR、、hsbGhsbG、、hsbBhsbB,,分分别别代代表表红红绿绿蓝蓝三三色色为为了了适适应应RGBRGB参参数数,,其其MinMin和和MaxMax分分别别设设为为0 0和和255255;;SmallChangeSmallChange和和LargeChangeLargeChange分分别别设设为为1 1和和5 5当当任任何何一一个个滚滚动动条条的的状状态态发发生生变变化化时时,,在在其其ChangeChange事事件件中中将将各各滚滚动动条条的的当当前前值值((ValueValue属属性性))作作为为RGBRGB函函数数的的参参数数,,为为标标签签Label4Label4的的BackColorBackColor属属性性赋赋值值,,即即改改变标签的背景色,以便适时、直观地反映变化后的颜色变标签的背景色,以便适时、直观地反映变化后的颜色 6.5 6.5 滚动条滚动条 ((6 6)) 程程序序的的运运行行结结果果如如图图6.256.25所所示示,,滚滚动动条条的的状状态态控制着控制着Label4Label4的背景色。
的背景色图图6.25 例例6.13的运行结果的运行结果 程序代码如下:程序代码如下:Private Sub Form_Load() '窗体加载,控件初始化窗体加载,控件初始化 Label4.BackColor = RGB(100, 100, 100) hsbR.Value = 100 hsbG.Value = 100 hsbB.Value = 100End SubPrivate Sub hsbR_Change() '““红红”滚动条的值改变滚动条的值改变 Label4.BackColor = RGB(hsbR.Value, _hsbG.Value, hsbB.Value)End SubPrivate Sub hsbG_Change() '““绿绿”滚动条的值改变滚动条的值改变 Label4.BackColor = RGB(hsbR.Value, _hsbG.Value, hsbB.Value)End SubPrivate Sub hsbB_Change() '““蓝蓝”滚动条的值改变滚动条的值改变 Label4.BackColor = RGB(hsbR.Value, _hsbG.Value, hsbB.Value)End Sub6.5 6.5 滚动条滚动条 ((7 7)) 上上述述三三个个滚滚动动条条的的ChangeChange事事件件中中的的语语句句完完全全相相同同,,而而且且语语句句较较长长。
对对这这种种在在程程序序中中重重复复使使用用的的程程序序段段,,可可以以将将其其编编制制成成一一个个通通用用过过程程或或函函数数供供调调用用,,以以简简化化代代码码,,提提高高代代码码的的复复用用性性在在本本例例中中可可设设置置一一个个通通用用过过程程ShowColorShowColor()(),,在在每每一一个个滚滚动动条条的的ChangeChange事件中调用过程代码如下:事件中调用过程代码如下:Private Sub ShowColor() Label4.BackColor = RGB(hsbR.Value, _hsbG.Value, hsbB.Value)End Sub6.5 6.5 滚动条滚动条 ((8 8)) 在各滚动条的在各滚动条的ChangeChange事件中通过以下语句调用:事件中通过以下语句调用: ShowColor '或或 Call ShowColor 运运行行此此程程序序时时,,当当拖拖动动滚滚动动条条的的滑滑块块到到达达某某个个位位置置并并释释放放后后,,标标签签Label4Label4的的背背景景色色发发生生了了变变化化,,但但在在拖拖动动滚滚动动条条滑滑块块期期间间,,颜颜色色并并没没有有变变化化。
这这是是因因为为没没有有设设置置ScrollScroll事事件件的的缘缘故故只只要要为为每每个个滚滚动动条条的的ScrollScroll事事件件添添加加代代码码,,加加入入对对ShowColorShowColor过程的调用,即可解决此问题过程的调用,即可解决此问题 6.5 6.5 滚动条滚动条 ((9 9)) 【例【例6.146.14】设计一个浏览图像的程序设计一个浏览图像的程序 浏浏览览图图像像是是指指利利用用较较小小的的屏屏幕幕区区域域观观察察较较大大尺尺寸寸的的图图像像本本例例的的设设计计思思路路是是::使使用用PictureBoxPictureBox控控件件作作为为容容器器,,其其内内包包含含有有一一个个ImageImage控控件件,,要要浏浏览览的的图图像像完完整整地地装装载载到到ImageImage控控件件,,利利用用滚滚动动条条改改变变ImageImage控控件件在在PictureBoxPictureBox控控件件中中的的位位置置,,实实现现浏浏览览的的目目的的通通用用对对话话框框控控件件用用于于打打开开图图片片文文件件三三个个命命令令按按钮钮cmdClscmdCls、、cmdLoadcmdLoad、、cmdEndcmdEnd分分别别用用于于装装载载、、清清除除图图像像以以及及退退出出。
除除命命令令按按钮钮的的名名称称和和CaptionCaption属性外,其他控件的属性均取默认值属性外,其他控件的属性均取默认值6.5 6.5 滚动条滚动条 ((1010)) 设设计计和和运运行行界界面面如如图图6.266.26所所示示,,其其中中左左图图为为设设计界面,中图和右图为运行界面计界面,中图和右图为运行界面程序代码详见教材)(程序代码详见教材) 返回首页图图6.26 例例6.14设计和运行界面设计和运行界面 6.6 本本 章章 小小 结(结(1)) 本章介绍了几种内部控件及其使用方法本章介绍了几种内部控件及其使用方法 单单选选按按钮钮的的作作用用是是显显示示一一个个可可以以表表示示““打打开开/ /关关闭闭””的的选选项,使用户在多个选项中只能选择其一项,使用户在多个选项中只能选择其一 复复选选框框用用于于提提供供Yes/NoYes/No或或 True/False True/False 的的逻逻辑辑选选择择一一组组复选框中的多个项目是相互复选框中的多个项目是相互““兼容兼容””的 框框架架的的用用途途有有二二::一一是是单单纯纯地地对对其其他他控控件件分分组组;;二二是是用用于于为单选按钮分组,实现多项选择。
为单选按钮分组,实现多项选择 列列表表框框显显示示由由若若干干项项目目组组成成的的列列表表列列表表框框的的主主要要属属性性和和方方法法,,包包括括用用于于增增删删项项目目的的ListList属属性性、、AddItemAddItem方方法法、、RemoveItemRemoveItem方方法法和和ClearClear方方法法;;访访问问所所有有项项目目的的ListList属属性性、、ListCountListCount属属 性性 ;; 获获 取取 或或 设设 置置 选选 定定 项项 目目 的的 TextText属属 性性 、、ListIndexListIndex属属性性、、SelectedSelected属属性性和和MultiSelectMultiSelect属属性性;;设设置置列列表框外观的表框外观的ColumnsColumns属性、属性、StyleStyle属性和属性和SortedSorted属性6.6 本本 章章 小小 结(结(2)) 组组合合框框将将文文本本框框和和列列表表框框的的功功能能结结合合在在一一起起,,既既可可输输入入文文本本内内容容,,也也可可从从列列表表中中选选择择项项目目。
组组合合框框的的样样式式特特点点由由StyleStyle属性确定在使用方式上,组合框具有和列表框相似的特征属性确定在使用方式上,组合框具有和列表框相似的特征 图图片片框框( (PictureBoxPictureBox) )既既可可以以用用来来显显示示图图像像,,也也可可以以作作为为其其他控件的容器图片框还和窗体一样,支持各种绘图方法他控件的容器图片框还和窗体一样,支持各种绘图方法 图图像像框框控控件件( (Image)Image)的的使使用用方方法法与与图图片片框框类类似似,,主主要要用用来来显显示示图图像像属属性性主主要要是是PicturePicture属属性性和和StretchStretch属属性性StretchStretch属性可以决定所加载的图片是否缩放属性可以决定所加载的图片是否缩放 定定时时器器( (Timer)Timer)是是一一个个响响应应时时间间的的控控件件它它运运行行时时不不可可见见,,用来在一定的时间间隔中周期性地执行某项操作用来在一定的时间间隔中周期性地执行某项操作 VB VB提供了两种滚动条控件:水平滚动条和垂直滚动条提供了两种滚动条控件:水平滚动条和垂直滚动条。
返回首页6.7 上上 机机 实实 训训实训目的实训目的 掌掌握握图图像像类类控控件件((Image或或PictureBox))、、组组合合框框、、滚动条、定时器等常用内部控件的使用方法滚动条、定时器等常用内部控件的使用方法实训内容实训内容1. 制作一个具有图像缩放功能的程序制作一个具有图像缩放功能的程序2. 制作摇奖机制作摇奖机返回首页结束。
