VB做的图片从左往右往返移动,但肝在左边还是右边到右边过去一次后就不出现了,到底哪错了

位置: -&& -&&
第四节 VB中的常用控件介绍
日期: 11:34:31
2.4& VB中的常用控件介绍
使用VB进行程序设计,与传统的程序设计最大的不同就在于,程序设计人员只要使用不同的控件并适当地进行组合以及设置内部联系,就可以很方便的设计出界面友好的交互式程序来。
在VB中,控件是由系统提供的、用户程序可以直接使用的对象。每个控件都有大量属性事件和方法,可以在界面设计过程中预先进行设定或是通过程序代码在程序运行过程中进行更改。
VB中的控件通常有3种类型。
第一种:内部控件。由VB系统提供的在默认条件下工具箱中显示的所有控件都是内部控件,如各种按钮控件、文本框、列表框等控件。这些控件被封装在VB的EXE文件中,不可以从工具箱中删除。编程人员可以直接将工具箱中显示的控件图标用鼠标拖到编辑平台上进行编辑。
第二种:ActiveX控件。这种类型的控件由VB系统单独保存在.ocx类型文件中,其中包括各种版本VB提供的控件,如数据绑定网格、数据绑定组合框等。
第三种:可插入对象。由编程人员根据需要插入到工具箱中的特殊对象,如Word文档、Excel工作表、Powerpoint幻灯片等,可以作为一个对象添加到工具箱中,供编程时随时使用。在工具箱中,每个控件都由一个特定形状的图标按钮表示。如表2-2所示:
表2-2 VB工具箱中的常用内部控件图标及说明
图片框(PictureBox)控件,用于显示图形文件或文本文件
标签(Label)控件,可保存界面上不能被用户更改的文本内容
文本框(TextBox)控件,用户可以在文本框中输入或更改数据、文本内容并及时显示出来
框架(Frame)控件,可以美化界面设计并提供分组功能
命令按钮(CommandButton)控件,用于创建界面上的交互命令按钮对象
复选框(CheckBox)控件,可让用户选择开关状态,选择多项选项
单选按钮(OptionButton)控件,可让用户选择开关状态,从多个选项中选择单个选项
组合框(ComoBox)控件,将 TextBox 控件和 ListBox 控件的特性结合在一起,既可以在控件的文本框部分输入信息,也可以在控件的列表框部分选择一项。
列表框(ListBox)控件,显示供用户选择的项目列表,从其中可以选择一项或多项, 如果项目总数超过了可显示的项目数,就自动在 ListBox 控件上添加滚动条。
数据(Data)控件,用于连接数据库,并在窗体的其他控件中显示数据库信息
图形(Image) 控件用来显示图形。它可显示下面几种格式的图形:位图、图标、图元文件、增强型图元文件、JPEG 或 GIF 文件
线段(line)控件, 显示水平线、垂直线或者对角线。在设计时,可以使用 Line 控件在窗体上绘制线段。
形状(shape)控件,设计时用于绘制各种类型的形状,可以绘制矩形、正方形、椭圆、圆、圆角矩形或者圆角正方形等。
文件列表框(FileListBox)控件,用来显示当前路径下的文件名列表,供用户选择
目录列表框(DirListBox)控件,用于显示目录列表,供用户选择
驱动器列表框(DriveListBox)控件,用于显示当前可用的驱动器,供用户选择
计时器(Timer)控件,以设定的时间间隔执行程序指令来触发某个事件,该控件在运行时看不见。
水平滚动条()和垂直滚动条()控件,用于提供简便的定位,还可以模拟当前所在的位置
OLE容器()控件,创建OLE容器对象可把其他应用的数据嵌入到VB应用程序中。
1. 标签控件(Label)
标签控件用来显示不能被更改的文本信息。一般用于显示标题和说明性文字。
(1)常用属性
①标题(Caption)属性
用于设置标签上显示的文字。
②自动尺度(AutoSize)属性
用来设置标签是否能自适应大小,当设置数值为True时,可根据显示内容的多少自动调整大小以适应其内容;如果设置值为False(默认),标签的大小不能改变,超长的文字会被截断。
③对齐(Aligbment)属性
用来设置标签中文本的对其方式,共有0,1,2三个属性数值,分别对应左对齐、右对齐和居中对齐三种方式,如表2-3所示。
表2-3标签的Alignment属性值及对齐方式
LeftJustify
RightJustify
④字体(Font)属性:
本属性用来设置标签显示的字体,既可以在创建界面时设定,也可以在程序中改变。
⑤边框(BorderStyle)属性
用来设定标签的边框。默认时属性值为0,标签无边框;属性值若设为1,标签有边框。
⑥底色(BackStyle)属性
只有透明、不透明两种属性,用来设置标签是否透明。默认情况下属性值为1,标签不透明;若将属性值设置为0,则标签透明,可透过标签看到后面的背景。效果如图2-12所示。
图2-12 标签的BackStyle属性对比
⑦自动换行(WordWrap)属性
用来设置标签中的内容是否能够自动根据文字多少换行显示。默认属性值为False,标明标签中的内容不能自动换行显示;属性值设置为True时,标签中的文字内容能够自动换行显示。
注意,需要自动换行显示文字内容时,应将AutoSize属性设置为True,否则如果标签尺寸不够,换行后的文字内容不会被显示出来。
⑧可见(Visible)属性:
本属性在大多数控件中都有,它能设定该控件是否可见。当值为 True ,控件可见;当值为 False ,控件隐藏。
(2)常用事件和方法
标签的常用事件有Change事件等,当标签显示的文本内容发生变化时触发change事件。 标签常用的方法为move方法,其语法格式与窗体相同,用来在程序中改变标签的位置和大小。下面请看一个移动标签的实例。例2-2:在一个窗体中添加一个标签,一个按钮。如图2-13所示:
图2-13 移动标签实例
双击命令按钮控件,打开代码窗口,编写如下代码:
Private Sub Command1_Click()
Label1.Caption = &移动标签&
以上代码表示的含义是,当用户用鼠标单击命令按钮时,标签显示的的标题由原来的“不透明标签”变化(Change)为“移动标签”四个字。
双击标签控件,打开代码编辑窗口,编写如下代码:
Private Sub Label1_Change()
&&&Label1.Left = Label1.Left + 400
&&&Label1.Top = Label1.Top + 400
&以上代码的含义是,当标签内容发生变化(Change)事件时,标签Label1的位置向右向下各移动400个像素位置。程序运行后,用鼠标单击命令按钮,可以看到标签发生移动到右边的情况,如图2-14所示。
图2-14 标签发生移动的结果
2.文本框控件(Text)
文本框控件既可以用来输出显示文本信息,也可以用来接收输入的文本信息,还可以对输入的信息进行编辑修改等操作。
(1)常用属性
在窗体界面上添加文本框控件后,通过工具栏上“属性窗口”按钮或是选择“视图”菜单中的“属性窗口”命令,也可以按F4键,打开文本框控件的属性窗口,对各个属性进行设置。
文本框的应用很广泛,属性设置的内容也很多,从打开的属性窗口中可以了解所有属性的意义和取值范围。这里只重点介绍几个常用的属性。
①Text属性
该属性用于设置程序运行时文本框中显示的文本内容。可通过属性窗口设置,也可在编程过程中通过语句命令设置。在程序中进行设置的语法格式为:
object.Text[=string]
说明:Object 为文本框控件对象名,在添加控件时系统会自动产生,如Text1,String为任意字符串
例如,假设窗体中所添加的文本框控件对象名为text1,要在程序运行时显示“请输入文本信息”文本,可以用下面语句实现:
Text1.Text=” 请输入文本信息”
②MultiLine属性
该属性用于设置文本框控件显示和输入文本信息时能否显示多行文本,取值有两个:
True:设置为“多行文本”,可以在文本框中输入并显示多行文本。
False: 设置为“单行文本”,文本框中输入和显示的文本只能在单行中显示。
可以通过程序代码对该属性进行设置,代码的语法结构为:
object.MultiLine
[= boolean]
说明:object为文本框控件对象名,在添加控件时系统会自动产生,如Text1。也可由编程人员定义对象名。Boolean的值可以是False(系统默认值),也可以是True。
③MaxLength属性
该属性用于设置文本框中输入的字符串长度是否有限制。系统默认值为0,表示文本框只能输入单行文本,且这一行内的字符数为2048个。通过修改文本框控件的多行属性值(Multiline)为True,则可以实现输入多行文本,整个输入文本的内容可以达到32KB。若设置为大于0的数,则这个数字就表示能够输入的字符数。
④PasswordChar属性
该属性用于设置设置是否在文本框中显示用户键入的字符。如果要设置,只能使用一个字符,如一个英文字符或某个标点符号(西文)。设置后,程序运行时无论用户在文本框中输入什么内容,都只会显示这个英文字符或者标点符号。该属性常用于程序中的密码输入设计。但需要注意的是,如果设置该属性,则MultiLine属性必须设置为false,即只能在单行模式下使用该属性。
⑤ScrollBars属性
该属性用于设置文本框是否有水平或垂直滚动条,或二者皆有。设置时分别取0,1,2,3四种数值。0表示没有滚动条(系统默认值);1表示只有水平滚动条;2表示只有垂直滚动条;3表示同时有水平和垂直滚动条。要在文本框中设置有滚动条出现,MultiLine属性必须设置为True。
⑥Mousepointer属性
该属性用于设置鼠标经过文本框时鼠标指针的形状。共有16种不同的鼠标指针形状可供选择。每一种用一个数字代表。其中,属性值99—Custom表示允许用户定义自己的鼠标指针。
⑦MouseIcon属性
该属性设置一个自定义的鼠标指针。要使该属性有效,MousePointer属性必须设置为“99—Custom”
(2)文本框属性设置举例
例2-3:设置文本框MultiLine属性和ScroLLbars的属性。
①新建一个工程,在屏幕上的窗体Form1上添加一个文本框控件Text1,其MultiLine和ScrollBars属性设置如图2-15所示。
图2-15& TextBox控件的属性设置
&②设置完毕后,运行该程序,可以看到窗体上的文本框中出现水平和垂直滚动条,用户可以在其中输入多行文字。如图2-16所示。
文本框中出现垂直和水平滚动条
VB中的按钮控件可以分为两种。一种是命令按钮(CommandButton),另一种是单选按钮(OptionButton)。命令按钮在程序设计中常用来开始、中断或者结束一个程序或者进程。命令按钮的属性可以在属性窗口中设置,也可以通过程序代码进行设置。
下面介绍CommandButton的常用属性和事件方法。
(1)常用属性
①Caption属性
该属性用于设置按钮上显示的提示文本信息,如“开始”、“结束”等。
②Cancel属性
该属性的系统默认值为“False”。 当该属性值设置为“True”时,则表示该命令按钮为缺省的“取消按钮”。这时,既可以用鼠标单击该按钮来选中它,也可以在键盘上按ESC键表示选中它;当属性值为“False”时,就不能用ESC键表示选中它。
③Default属性
该属性的系统默认值为“False”。当该属性值设置为“True”时,则表示该命令按钮为缺省的 “活动按钮”。这时,既可以用鼠标单击该按钮来选中它,也可以在键盘上按下Enter键表示选中它。
要注意的是:在一个窗体中,只能有一个命令按钮可以设置为缺省的“活动按钮”,也只能有一个命令按钮可以设置成缺省的“取消按钮”。
④Enabled属性
该属性用于在程序运行过程中使控件处于有效或无效状态。属性的设置可以通过VB集成开发环境中的属性窗口设置,也可以在程序代码中由程序运行过程来设置。设置该属性的语法格式为:
Object.Enabled
[= boolean]
说明:语句中的object为命令按钮控件对象名,当在窗体上添加第一个命令按钮控件时,系统自动对其命名为Command1,以后添加的则顺序编号为Command2、Command3…。
Boolean的取值为两个逻辑值,一个为True,表示控件有效(系统默认值);另一个为False,表示控件无效,由编程人员设置。
(2)Click事件举例
例2-4:以下是一个加法运算的程序实例。在程序中,介绍了利用命令按钮的单击事件(Click)进行程序设计的方法。程序功能要求是首先要检查输入加数和被加数的两个文本框是否输入了数据。若两个文本框中都没、或者只在其中一个文本框中输入了数据,则“进行计算”的命令按钮无效;若两个文本框都输入了数据,“进行计算”的命令按钮有效,单击该命令按钮后可触发两个数字的加法运算。设计过程如下:
①新建一个工程,在窗体Form1上添加三个文本框控件Text1,Text2和Text3,用来作为加数、被加数和计算结果的输入输出显示;三个标签控件Label1、label2和label3,分别用于显示提示信息和运算符号;两个命令按钮控件Command1和Command2。Command1用于如前所述的启动“进行计算”;Command2用于清除原有信息和数据。各个控件的初始属性设置如表2-4所示。
表2-4 各控件属性初始设置
“请输入要进行累加计算的数字”
“+”(加号)
“=”(等于号)
“”(空白)
“”(空白)
“”(空白)
界面设计如图2-17所示。
图2-17 程序界面设计
②编写指令代码。“开始计算”命令按钮的Click事件程序代码如下:
Private Sub Command1_Click()
l = Val(Text1.Text)
n = Val(Text2.Text)
Text3.Text = s
“重新开始”命令按钮的Click事件程序代码如下:
Private Sub Command2_Click()
Text1.Text = &&
Text2.Text = &&
Text3.Text = &&
Label1.Caption = &请重新输入数字进行计算&
程序窗体加载时的初始化代码如下:
Private Sub Form_Load()
Text1.Text = &&
Text2.Text = &&
Text3.Text = &&
文本框控件Text1中输入数据后的Change事件程序代码如下:
Private Sub Text1_Change()
If (Text1.Text = &&
Or Text2.Text = &&) Then
Command1.Enabled = False
Command1.Enabled = True
文本框控件Text2中输入数据后的Change事件程序代码如下:
Private Sub Text2_Change()
If (Text1.Text = &&
Or Text2.Text = &&) Then
Command1.Enabled = False
Command1.Enabled = True
程序运行后的结果如图2-18所示。
图2-18 运行结果
4.单选按钮控件(OptionButton)
单选按钮用来显示一个可以打开或关闭的选项,而且在同一组中的单选按钮控件,用户只能选择其中的一项。单选按钮的属性可以在属性窗口中进行设置,也可以通过程序代码进行设置。下面介绍单选按钮的常用属性和事件方法。
(1)常用属性
①Caption属性
该属性用于显示界面上单选按钮的名称,在程序设计中用于交互作用的信息提示。如告诉用户按下这个按钮选择的是什么内容的选项。
②Value属性
该属性用于设置一个单选按钮控件所代表的选项的选中状态,系统的默认值是False,表示没有被选中。如果设置为True,则表示被选中。通常是在程序代码中对其进行设置,设置的语法格式为:
object.Value[=boolean]
说明:Object为单选按钮控件对象名,在窗体上添加单选按钮控件后,系统会自动给添加的按钮控件命名,如Option1、Option2…等。编程人员也可在属性窗口中的“名称”栏中自定义单选按钮控件名。
Boolean为属性值,分别可以是:
True——表示选中了控件所代表的选项;
Flase——表示控件所代表的选项未被选中,False为系统的默认值。
要注意的是,在一个窗体中有多个单选按钮控件时,在同一时刻只可能有一个被设置为True。如果用鼠标单击点选,则同一时刻只有一个会被选中,选中后其属性值变成True。
(2) Click事件举例
例2-5:下面是一个说明单选按钮的Click事件的用法。程序功能是进行一个简单的两个数字的四则运算并显示运算结果。当用户选择某一个单选按钮,如“加法”,则进行加法运算,如果选择“减法”,就做减法运算,等等。程序主要是为了说明当窗体上有多个单选按钮时,同一时间内只可能有一个按钮处于被选中的状态。程序设计过程:
①先设计屏幕界面,如图2-19所示。在窗体上添加两个标签控件,四个单选按钮控件,每个控件的初始属性设置如表2-5所示。
图2-19 程序界面设计
表2-5 程序中个控件初始属性设置
“两个数字的四则运算”
“”(空白 )
②程序代码设计
窗体加载初始化代码:
Private Sub Form_Load()
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Label2.Caption = &&
四个单选按钮的Click 事件代码设计:
Private Sub Option1_Click()
Label2.Caption = &25 + 5=
& & 25 + 5
Private Sub Option2_Click()
Label2.Caption = &25 - 5=
& & 25 - 5
Private Sub Option3_Click()
Label2.Caption = &25 * 5=
& & 25 * 5
Private Sub Option4_Click()
Label2.Caption = &25 / 5=
& & 25 / 5
说明:运行程序,当单击某个单选按钮时,就进行25与5两个数字相应的算术运算并显示运算结果,如图2-20所示。
图2-20 程序运行结果
5. 复选框控件(Check Box)
复选框也是用来在程序中向用户提供选择的一种控件。用户选择复选框后,控件会显示一个“√”符号,再次点选时则“√”符号消失,这是与单选按钮在操作上的第一个区别。
与单选按钮在操作上的另一个区别是,在同一组的复选框控件中,用户可以选择其中的任意多个项。复选框控件的属性可以在属性窗口中进行设置,也可以通过程序代码进行设置。下面介绍复选框控件的常用属性和事件方法。
(1)常用属性
①Caption属性
该属性用于显示界面上复选框的名称,在程序设计中用于交互作用的信息提示。如告诉用户按下这个按钮是选择的是什么内容的选项。
②Value 属性
该属性用于设置一个复选框控件所代表的选项的选中状态,有三个不同数值,如表2-6所示。
表2-6复选框的Value属性值和VB常数
vbUnchecked
Unavailable
系统的默认值是0,表示没有被选中。如果设置为1,表示被选中;如果设置为2,则表示禁止点选。也可以在程序代码中对其进行设置,设置的语法格式为:
object.Value[=属性值]
说明:Object为复选框控件对象名,在窗体上添加复选框控件后,系统会自动给添加的复选框控件命名,如Check1、Check2…等。编程人员也可在属性窗口中的“名称”栏中自定义复选框控件名。
属性值如表2-5中所列各项,可以用数值0、1、2;也可用设置值Unchecked、checked或Unavailable,或者还可以用常数值vbUnchecked、vbChecked或vbGrayed来进行设置。
(2)Click事件举例
当程序运行时用户用鼠标单击了复选框控件,就会激发Click事件。例如以下程序代码在用户单击复选框后,就会将复选框控件的标题(Caption)进行改变。
Private Sub
Check1_Click()
Check1.Value = vbChecked Then
Check1.Caption
Check1.Value = Unchecked Then
Check1.Caption
= &未选中&
在程序设计中,经常利用复选框的Value属性值情况,做出该选项是否被选中的判断。相应的例题将在后面章节介绍。
6.列表框控件(ListBox)
列表框控件用于显示项目列表,用户可以从中选择一个或多个项目。这在涉及到问卷选择等实际程序设计过程中很有用处。
列表框所显示的项目列表系统默认为单列列表,如果项目数超过列表框可显示的数目,将会自动出现垂直和水平滚动条。
(1)主要使用方法和事件
① AddItem方法。
作用:向列表框添加项目。
语法格式如下:
object.Additem 项目字符串表达式 [,index]
说明:object 为列表框控件对象名,当在窗体上添加了列表框时,系统默认名为List1、List2 …等,也可通过属性窗口的名称栏自定义控件名。
项目字符串表达式:需要在列表框中显示的字符串表达式。若是文字常量,则需要用双引号将它括起来。
Index:指定在列表框中插入新项目的位置。数值0表示第一个位置,若省略则表示将项目插入到末尾(或按排序秩序插入到适当位置)。
程序设计时,一般是在窗体Form加载事件过程中添加列表框中的项目。但也可以在其他时候通过AddItem方法动态添加项目内容。
下列程序代码将在窗体Form1加载时对添加到窗体上的列表框List1添加项目:武汉、长沙、株洲、广州、海口、三亚。
Private Sub
Form_load()
&&List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
程序运行后的结果如图2-21所示。
如果要在指定位置添加一个新的项目,可以通过指定索引数值来进行。例如,在上述列表框中再增加一个项目“南宁”,且要加到“武汉”的前面,可以通过以下命令实现:
List1.AddItem “南宁”,0
这里,0表示添加项目到列表中的第一个位置。要注意索引值是从0开始计数的。添加后,结果如图2-22所示。
图2-21 添加项目后的列表框
图2-22添加新项目在第一个位置
② Removeitem 方法
作用:从列表框中删除项目
语法格式如下:
object.RemoveItem&
说明:Object如前述意义,代表列表框控件名;index则表示项目在列表框中的次序号。
例如,要删除列表框List1中的第一个项目,可在程序中使用语句:
& List1.RemoveItem
③ Clear 方法
作用:删除列表框中的所有项目
语法格式如下:
object.Clear
object的意义同前,为列表框控件名。
④ Click事件
当用户在一个项目上单击鼠标按钮时发生。
(2)常用属性
① Apearance 属性
该属性用来设置列表框的显示模式。有两个取值,分别是:
0——flat:表示平面模式,即列表框以平面的窗口形式显示
1——3D:表示立体模式,即列表框以三维窗口形式显示
② Columns属性
该属性用于设置列表框中的项目是水平滚动还是垂直滚动,以及显示选项中列的排列方式。属性值可以是0,或者大于0的任意正整数。如果设置为0,则列表框内出现垂直滚动条,所有的项目排列在一列中,通过移动垂直滚动条来选择表中的项目;若果设置为大于0的正整数,则列表框内出现水平滚动条,所有的项目按照选择的数字排列在多个列中,通过移动水平滚动条来选择表中的项目。
属性的设置可以在设计时通过属性窗口直接设置,也可以在程序代码中进行动态设置。用代码设置的语法格式为:
object.Columns[=number]
说明:object为列表框控件名,如list1等。
&&&&& Number为0,或者1到 n的任意数。
③ Enabled属性
该属性用来设置列表框是否响应用户生成事件,即是否可用。有两个取值,分别是:
True: 表示列表框可用
False: 表示列表框不可用,这时添加到列表框中的项目为灰色,用户不可在其中选择项目。
④ List属性
该属性用于在设计阶段由编程人员直接向列表框中添加项目。在程序设计中还可以通过使用该属性来实现对列表框中各个项目的访问和引用。它是一个一维数组,数组中元素的值就是在执行时看到的列表项。设计时可以在属性窗口中输入List属性来建立列表项,运行时对List数组从0到ListCount-1依次取值可以获得列表的所有项目
引用列表框中项目的语法为:
object.List(index)
说明:object为列表框控件名,如List1。Index为项目在列表框中的序号,第一个项目序号为0,其余顺序后排。例如,要访问列表框控件List1中第3个项目,并将其内容在文本框控件Text1中显示,可用以下语句实现:
Text1.text=List1.list
⑤ ListIndex属性
该属性用于得到列表框中某个已选定项目的次序位置或者说当前选定项目的索引值。因此,这个属性只能在程序运行过程中用户选定了某个项目后才能使用。设置列表框的这个属性也将触发控件的Click事件。按照该属性的特点,用户选定第一个项目时,属性值为0,如果选定第二个项目,则属性值为1,依次类推。如果没有选定项目,则属性值为-1。程序设计时通过这些数值就可以判断用户选定了列表框中的哪个项目。
⑥ ListCount属性
该属性用于统计列表框中所有项目的个数。
⑦ MultiSelect属性
该属性用于设置列表框中的项目是否可以多项选择。属性设置有3个数值:
0—None:禁止多项选择,列表框中的项目一次只能选择一项。
1—Simple:简单多项选择,列表框中的项目可以用鼠标单击或按空格键表示选定或取消选定这个项目。
2—Extended:扩展多项选择,按下Ctrl键不放,同时用鼠标单击或按空格键表示选定或取消选定一个项目,按下Shift键的同时单击鼠标,或者按下Shift键并且拖动鼠标,就可以从前一个选定的项目连续选到当前鼠标所在位置的项目,即可进行连续项目的选择。
⑧ Selected 属性
该属性用于在程序中使用代码来选定列表框中的选项。例如List1.selected(2)=true表示选中列表框List1中的第3项内容,如为False则表示未被选中。
⑨ Sorted属性
该属性表示列表框中的项目是否按字母顺序排列。若设置为True,则项目按字母顺序排列,设置为False则不安字母顺序排列。
⑩ Style属性
该属性只能在设计时确定。用于设置列表框控制控件的外观,其数值可以设置为0(标准样式)和1(复选框样式)。设置为1时,列表框中的项目前面带有复选框,用户选中该项目复选框中会出现“√”。两种设置的不同结果如图2-23所示。图中给出了两个列表框,左边为标准列表框样式,右边为复选列表框样式。
图2-23 不同的Style属性设置结果
(3)应用举例
在日常应用中,经常会遇到需要将一个列表框中选定的项目添加到另一个列表框中的情况。如网上购物程序中顾客选中的商品、BBS论坛程序中需要增加或删除的客户名单等等。下面程序可以十分方便的实现这种要求。
例2-6:设计一个程序,能够实现在两个列表框中进行项目增、减的功能。
设计过程:
① 界面设计。创建一个新工程,在窗体上添加两个列表框控件List1和list2;两个命令按钮控件Command1和Command2。将Commnad1按钮的Caption属性设置为“&&”,将Commnad2按钮的Caption属性设置为“&&”,界面设计如图2-24所示。
图2-24 界面设计效果
② 代码设计
编写窗体加载时向List1列表框添加项目的指令代码:
Private Sub Form_load()
& List1.AddItem &湖北&
& List1.AddItem &湖南&
& List1.AddItem &广东&
& List1.AddItem &广西&
& List1.AddItem &江苏&
& List1.AddItem &浙江&
对两个命令按钮Command1和Command2的Click事件,分别编写如下代码:
Private Sub Command1_Click()
List2.AddItem List1.Text&&&&&&& ‘将list1中选定的项目添加到list2中
i = List1.ListIndex&&&&&&&&&&&& ‘取得list1中刚才这个选定项目的序号
List1.RemoveItem I&&&&&&&&&&&&& ‘删除这个选定项目
Private Sub Command2_Click()
List1.AddItem List2.Text&&&&&&&& ‘将list2中选定的项目添加到list1中
List2.ListIndex&&&&&&&&&&&&& ‘取得list2中刚才这个选定项目的序号
List2.RemoveItem j&&&&&&&&&&&&&& ‘删除这个选定项目
运行程序后,用鼠标在左边列表框选定一个项目, 然后单击“&&”按钮,可以看到该项目被添加到右边的列表框中;如果反过来在右边的列表框中选定一个项目后单击“&&”按钮,则看到该项目又回到左边列表框中。程序运行结果如图2-25所示。
图2-25 程序运行结果
想一想:该程序十分简单,但运行时有时会出错,通过运行程序看一下在什么情况下会出错?仔细分析原因,思考一下为什么会出错?等到后面章节学习了更多知识,再回过头来看看这个程序有没有更好的解决办法。
7. 组合框控件(ComboBox)
组合框将文本框和列表框的功能组合到一起,可以有更多的应用形式。它的主要功能与列表框非常相近,但一次只能选择或输入一个选项,而不能设定为多重选择模式,其主要特点是具有带向下箭头的方框。在程序运行时,按下此按钮就会下拉出一个列表框供用户选择项目。另外,还可以在组合框上方的框中输入数据。
(1)常用属性
该属性返回或设置一个用来指示控件的外观显示形状类型和行为的值,在运行时刻是只读的。其取值如下:
0(默认值):包括一个下拉式列表和一个文本框的下拉式组合框。
1:包括一个文本框和一个不带下拉列表的简单组合框。
2:下拉式列表。
图2-26给出了三种样式的组合框,左边的是下拉式组合框,既可输入又可选择;中间的是简单组合框,只能输入不能选择;右边的是下拉式列表,只能选择不能输入。
图2-26 组合框的三种不同形式式示例
l下拉组合框
Style属性选择0(系统默认值)时,组合框以下拉组合框的形式出现。这时用户可以向使用文本框那样直接输入文本,还可单击组合框右边的下拉箭头打开选项列表来选定某个项目,选中后就会在组合框的顶部显示项目文本。
l简单组合框
Style属性选择1时,组合框以简单组合框的形式出现。任何时候都在里面显示项目列表。用户可以在列表中进行选择,也可输入新的文本内容。
Style属性选择2时,组合框以下拉列表的形式出现。他可以显示项目的列表,但必须单击表中的下拉箭头列表才能出现。它与前两种类型的最大区别是只能选择,不能输入新的文本内容。
(2)常用事件和方法
组合框的常用方法和事件有:
① AddItem方法
作用:向组合框添加项目。
语法格式如下:
object.Additem 项目字符串表达式 [,index]
说明:object 为列表框控件对象名,当在窗体上添加了组合框时,系统默认名为Combo1、combo2 …等,也可通过属性窗口的名称栏自定义控件名。
② Removeitem 方法
作用:从列表框中删除项目
语法格式如下:
object.RemoveItem&
说明:Object如前述意义,代表列表框控件名;index则表示项目在列表框中的次序号。
例如,要删除组合框控件Combo1中的第一个项目,可在程序中使用语句:
& Combo1.RemoveItem
③ Clear 方法
作用:删除组合框中的所有项目
语法格式如下:
object.Clear
object的意义同前,为组合框控件名。
④ Click事件
Click事件除了常用于按钮控件以外,也可以用于ComboBox控件。下面的例题说明用组合框的Click事件选择项目在文本框中显示的方法。
例2-7:设计一个程序,当用户选择(单击)组合框中的项目后,能够在文本框中显示相应内容。
设计过程:
① 新建一个工程,在窗体上添加一个组合框控件,一个文本框控件,界面设计如图2-27所示。
图2-27 界面设计
&代码设计。编写窗体加载时向Combo1组合框添加项目的指令代码:
Private Sub
Form_load()
& Combo1.AddItem
& Combo1.AddItem
& Combo1.AddItem
& Combo1.AddItem
& Combo1.AddItem
& Combo1.AddItem
组合框控件的Click事件代码程序如下:
Private Sub
Combo1_Click()
Text1.Text =
Combo1.Text
运行程序后,用鼠标单击组合框右边的下拉箭头打开组合框,然后再用鼠标单击选中其中的一个项目,可以看到被选定项目文本出现在右边的文本框中。如图2-28所示。用这个方法,可以实现对组合框中各个项目的逐个访问。
图2-28 程序运行结果
8.滚动条控件(ScrollBar)
VB为一些不能自动支持滚动显示多个项目内容的控件提供了垂直和水平滚动条控件,利用这两个控件,可以使不能支持滚动的控件实现滚动功能。其中水平滚动条控件是HScrollBar,垂直滚动条控件是VScrollbar。滚动条的结构为:两端各有一个滚动箭头,两个滚动箭头中间是滚动条部分,在滚动条上有一个能够移动的小方块,叫做滚动框。利用它们,可实现快速移动很长的列表或大量信息,可在标尺上指示当前位置等等操作。
滚动条的图形如图2-29所示。
图2-29 水平和垂直滚动条
(1)常用属性
因为在程序设计中常常将水平和垂直滚动条一起使用,而且它们的属性很多地方都相同,所以这里把它们放在一起来介绍。
① Max属性和Min属性
设置滚动条的最大值和最小值,其值介于-32 768到32 767之间。Max的默认值为32 767,Min的默认值为0。对于水平滚动条来说,最左边为Min,最右边为Max;对于垂直滚动条来说,最下面为Min,最上面为Max。这个数值也代表了滚动条位置的Value属性最大设置值。
它们的语法格式为:
Object.Max[= value]
Object.Min[= value]
② Value属性
表示目前滚动条所在位置对应的值,它是滚动条控件中移动方块位置与最大、最小值换算而得的结果。
③ LargeChange属性
设置用鼠标单击滚动条中间的轴时,每次增减的数值。系统默认的数值为1,用户可以自己修改。
它的语法结构是:
object .LargeChange [= number]
④ SmallChange属性
设置用鼠标单击滚动条两边的箭头时,每次增减的数值。系统默认的数值为1,用户可以自己修改。
object .SmallChange [= number]
上面的Object代表所添加的滚动条控件名,如HScroll1或者VScroll1等,number为1——32767之间的一个数字,缺省时,系统值都为1.
(2)常用滚动条事件
下面介绍滚动条的常用事件。
① Scroll事件
只在移动滚动框时被激活,单击滚动箭头或单击滚动条均不能激活该事件。一般可用该事件来监测滚动框的动态变化。
② Change事件
在滚动条的滚动框移动后可以激活,即释放滚动框、单击滚动箭头或单击滚动条时,均会激活该事件。一般可用该事件来获得移动后的滚动框所在的位置值。
(3)应用举例
新建一个工程,在窗体中放置两个文本框Text1和Text2,分别用来显示水平各垂直滚动框的位置;一个垂直滚动条和一个水平滚动条以及两个标签。如图2-30所示。
图2-30 程序界面设计
垂直滚动条VScroll1的基本属性如下:
Max &&&&&&&&&&& 100
Min &&&&&&&&&&& 0
水平滚动条HScroll1的基本属性如下:
Max&&&&&&&& 100
Min&&&&&&&& 0
在这两个滚动条上分别设计如下事件过程:
Private Sub HScroll1_Change()
&&Text1.Text
= HScroll1.Value
&&VScroll1.Value
= HScroll1.Value
Private Sub
VScroll1_Change()
&&Text1.Text
= VScroll1.Value
&&HScroll1.Value
= VScroll1.Value
通过这两个事件过程,使得在运行移动滚动条时在文本框中显示当前值,同时这两个滚动条同步移动。执行本程序,将水平滚动条移动至100,其结果如图2-31所示。
图2-31 程序运行结果
9.框架控件(Frame)
框架是用来对其他控件进行分组的一种控件。分组后界面上各个控件按功能分类的布局会更加清晰、便于识别和使用。
通常在布局界面时,是先在窗体中安排框架,根据程序的特点将窗体界面用框架控件进行功能性的划分。如显示文本信息归为一类,进行人机交互归为另一类,等等。再把相应的控件如文本框、按钮等分别放在不同的框架内。这样安排后,框架和框架里面的各个控件就形成一个整体,可以整体进行移动布局。如图2-32所示。
图2-32 用框架布局窗体界面
10.计时器控件(Timer)
计时器控件(Timer),可以有规律地以一定的时间间隔激发计时器事件(timer),进而执行相应的代码指令。与其他控件相比,计时器控件的特殊之处在于,设计阶段它以一个小时钟的图标显示在窗体上,而程序运行时它是不可见的。
(1)计时器控件的常用事件
计时器控件的常用事件是Timer()事件。它在一个预定的时间间隔过后发生。通常是在计时器属性设置中预定时间间隔,然后计时器就按照这个时间间隔定时开始工作。
(2)常用属性
① Interval属性
该属性用于设置计时器触发的时间间隔(周期)。取值范围为0——65535。数字设定后代表的是毫秒数,其中:
0(系统默认值):表示计时器无效。
1——65535:计时器触发时间间隔(毫秒)
② Enabled属性
该属性设置为True时,计时器开始工作,设置为False时计时器无效。
(3)应用举例
例2-8:设计一个可以显示系统时间和日期的程序。设计过程:
① 界面设计
新建一个工程,在窗体界面上添加一个计时器控件Timer1,一个命令按钮控件Command1,用于控制程序显示当前日期;六个文本框控件Text1、Text2、Text3、Text4、Text5、Text6,分别用于显示日期和时间的文本信息;六个标签控件分别用于显示“年”、“月”、“日”和“时”、“分”、“秒”的文本信息,如图2-33所示。
图2-33 程序界面设计
② 控件属性设置
窗体上安放各个控件后,对各个控件进行属性的设置,如表2-7所示。注意,对于计时器控件Timer的时间间隔Interval属性设置为10,表示每个10毫秒激发一次计时事件,在显示时间的文本框中显示当前系统时间。
表2-7 各控件属性设置情况
“”(空白)
“”(空白)
“”(空白)
“”(空白)
“”(空白)
“”(空白)
③ 编写程序代码
对计时器控件的Timer事件,编写如下代码,使得计时器每个时间间隔10毫秒就被触发一次,在文本框Text4、Text5、Text6中分别显示系统时间时、分、秒信息:
Private Sub
Timer1_Timer()
Text4.Text =
Hour(Time)
Text5.Text =
Minute(Time)
Text6.Text =
Second(Time)
对命令按钮Command1的Click事件编写如下代码,使得用户单击命令按钮是在文本框Text1、Text2、Text3中分别显示系统日期年、月、日信息:
Private Sub
Command1_Click()
Text1.Text =
Year(Date)
Text2.Text =
Month(Date)
Text3.Text =
保存程序,然后运行程序,可见屏幕上显示如图2-34的界面。在窗体中的下面一行文本框(即Text4、Text5、Text6)中,显示出当前系统的时间,并且每个一段时间秒数会变化一个数值(实际上就是对计时器设定的时间间隔10毫秒),表明每隔10毫秒计时事件被激发一次。另外,程序刚刚运行时并没有显示日期信息,当用户用鼠标单击命令按钮“显示日期”后,日期信息才会显示在第一行的各个文本框中。程序运行的结果如图2-34所示。请注意,在运行的程序界面上,已看不到设计时安排在窗体中的计时器控件图标了。
图2-34 计时器程序运行结果
11. 图片框控件(Picture Box)
图片框控件(Picture Box)用于显示图形文件。它所支持的图形文件格式有:位图文件(.bmp格式文件)、逐帧动画文件(.GIF格式文件)、压缩图像文件(.JPEG格式文件)、图标文件(.icon格式文件)以及Windows文件(.wmf格式文件)等。图片框控件(Picture Box)不仅可以显示图片,还可以作为其他控件的容器,支持绘图和输出文字。
下面介绍它的常用属性和事件。
(1)常用属性
① Align属性
该属性用于规定图片框对象在窗体上对齐显示的位置。有5个不同的属性值:
0—None:无规定,由设计时定义的控件位置和大小确定对象在窗体上显示的位置。
1—Align Top:顶部对齐,对象显示在窗体的顶部,宽度与窗体相同
2—Align Bottom:底部对齐,对象显示在窗体的底部,宽度与窗体相同
3—Align Left:左对齐,对象显示在窗体的左边,高度与窗体相同
4—Align Right:右对齐,对象显示在窗体的右边,高度与窗体相同
图2-35——图2-39分别为这5个不同属性的设置情况。
图2-35 无规定情况&&&&&& 图2-36 顶部对齐情况&&&&& 图2-37 底部对齐情况
图2-38 左对齐情况&&&&&&&&&&&& 图2-39右对齐情况
② Appearance属性
该属性用于设置图片框或图像框在窗体上显示的外观类型。有两个数值选择:
0—Flat:图片框以二维平面的形式显现出来
1—3D:& 图片框以三维立体的形式显现出来
③ AutoSize属性
该属性用于确定图片框自动调整尺寸与图片相适应,系统默认值为False。这时,当图片尺寸大于图片框时,图片框大小不会改变,会裁掉超过图片框尺寸的部分后显示图片内容;当该属性设置为True 时,图片框会根据图片的尺寸自动调整大小以显示图片的全部内容。
④ Picture属性
该属性用于在图片框中加载一个图片文件。加载可以在设计时通过属性窗口进行,也可以通过程序代码进行。程序代码的语法格式为:
Object.Picture=LoadPicture(“图片文件名”)
Picture1.Picture
= LoadPicture(&F:\disny\05.jpg&)
如果在程序运行中要清除图片框中的图片,可以用以下方法实现:
Object.Picture=LoadPicture()
即LoadPicture()函数中不写文件名。
(2)图片框常用事件
当窗体上添加了图片框控件,在运行程序是用户用鼠标单击图片框时触发该事件。下面的例题说明通过图片框的Click事件更换图片框中显示的图片的方法。
新建一个工程,在窗体上添加一个图片框控件Picture1,其初始属性设置如表2-8所示:
表2-8 图片框的初始属性设置情况
Appearance
F:\gif\computer1.jpg
从上述属性设置可以看到,窗体上的图片框设置成自动调整尺寸模式,程序在运行前就加载了一个名为“F:\gif\computer1.jpg”的图片文件,如图2-40所示。
图2-40 图片框中初始加载的图片
双击图片框控件,在打开的代码设计窗口中编写图片框控件Picture1的Click事件代码:
Private Sub
Picture1_Click()
Picture1.Picture
= LoadPicture(&f:\disny\04.jpg&)
保存程序后运行程序。刚开始运行时窗体界面上显示的是图片框初始加载的图片,用鼠标单击图片框后,出现另一幅图片。因这幅图片尺寸比原来的大,可以看到图片框尺寸也自动变大了,完整的显示了图片的全部内容,如图2-41所示。
图2-41运行程序用鼠标单击图片框后的结果
12.图像控件(Image)
实际上,图像控件与图片框控件的用途十分相似,也能够对图形文件输出显示。所支持的图像文件格式与图片框控件完全一致。从实际运用来看,图片框控件比图像控件功能更强,因为它既可以显示图片,还可以输出文字。
① Picture属性
与图片框一样,Image控件也有这个属性,同样是用于加载图形文件。加载可以在设计时通过属性窗口进行,也可以通过程序代码进行。程序代码的语法格式为:
Object.Picture=LoadPicture(“图片文件名”)
② Strech属性
该属性有点类似于图片框的AutoSize属性,也有False和True两个属性值。系统默认值也是False。但这个属性与图片框的AutoSize属性又有区别,它的最大特点是当设置为True时,如果图像框尺寸小于图片尺寸,依然可以全部显示图片的内容。这个特点对于屏幕窗体版面有限,而又想显示完整的图像时很有用处。图2-42说明了一幅同样大小的图片在同样大小的图片框和图像框中显示的不同情况(图像框的Strech属性被设置为True)。
图2-42 图片框和图像框的对比
在VB集成开发环境中创建窗体后,窗体的外观、风格、式样等可以作为一个文件保存到磁盘上,其文件的扩展名是.frm。
在VB中,窗体是一个特殊的对象,它主要起一个容器的作用。前面介绍的所有控件必须放在窗体上,才能更好地发挥作用。
(1)窗体的分类
VB中窗体(包括对话框)有两种类型:(有)模式窗体和无模式窗体。
对于“模式”窗体,必须将它关闭或隐藏,然后才能继续运行应用程序的其余部分。 例如我们常用到的消息对话框,在可以继续操作应用程序的其他部分之前,或者在切换到其它窗体或对话框之前,总是要求先单击“确定”或“取消”按钮,将其关闭(隐藏或卸载)。
对于“无模式”窗体(或对话框),可以在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。可以在该窗体显示的同时可继续在任何应用程序的其他位置工作。
(2) 窗体的常用属性
① Name属性:Name属性值就是窗体的标识名称。窗体的名称是工程中用于窗体的唯一标识。Name属性的设置只能通过在属性窗口中进行设置。在程序中动态地设置窗体其他属性时必须通过Name进行。只要在程序中调用该窗体,就必须通过调用该窗体的Name属性来调用该窗体。
② BackColor属性:设置窗体背景颜色。
③ BorderStyle属性:该属性用于设置窗体运行时的外观样式和风格。注意:BorderSyle属性只能在设计时,通过属性窗口设置,不能通过程序代码设计实现
在新建的VB工程中系统总是创建一个默认的窗体。它的默认名为Form1, 系统默认的BorderSyle属性设置是2——Sizable,外观如图2-43所示,其窗体右上角有三个按钮,分别表示最大化、最小化和关闭操作。
图2-43 系统创建的默认窗体
VB通过BordStyle属性,提供了6中不同外观和运行风格的窗体。编程人员可以根据实际需要选用其中的某一种。这6种不同的属性值和对应的窗体外观风格分别是:
0:窗体无边框,运行后不能调整窗体大小也无关闭按钮
1:固定单边框,运行后不能改变窗体大小,只显示关闭按钮
2:(默认值)标准的Windows窗口边框,运行后窗体有最大化和最小化按钮。窗体大小可变,可用鼠标拖动改变其大小。
3:固定对话框,运行后不能调整其大小,只显示关闭按钮。
4;固定工具窗口,运行后窗体大小不能改变,只显示关闭按钮,标题栏字体变小。
5:可变大小工具窗口。运行后,窗体大小可以改变,只显示关闭按钮,标题栏字体变小。
④ Caption属性:用于显示在窗体标题栏上的文字。当窗体最小化时,该文本被显示在窗体图标的下面。该属性可以在设计程序时在属性窗口中进行设置,也可以通过程序代码在程序运行过程中动态设置。用代码设置的语法格式为:
object. Caption [=string]
例:MyForm.Caption = “学生成绩管理窗口”
⑤ ControlBox属性:设置窗体标题栏上是否具有控制菜单栏及按钮。
⑥ Enabled属性:决定运行时窗体是否响应用户事件。在程序运行时可以看到改变 Enabled属性的效果。此时Enabled已设为False,所以点击按钮不会有反应。
⑦ Height属性:设置窗体的高度
⑧ Width属性:设置窗体的宽度
⑨ Left属性:设置程序运行时窗体的水平位置
⑩ Top属性:设置程序运行时窗体的垂直位置
⑾ Visible属性:设置程序运行时窗体是否可见。当Visible为False时,窗体是不可见的。将值改为为True。运行时窗体就是可见的了。
⑿ WindowsState属性:设置程序运行中窗体的最小化、最大化和原形这三种状态。程序运行时的最小化状态。
⒀ Icon属性:该属性用于设置窗体在运行时窗体处于最小化时显示的图标。
⒁ Picture属性:为了窗体的美观有时需要给窗体设置一个符合程序主题的背景图片。这可以通过设置窗体的Picture属性来实现。Picture属性用于返回或设置窗体中要显示的图片。如图2-45所示。在设置Picture属性时,可以在设计程序时通过属性窗口来进行设置,也可以通过程序代码在程序运行过程中动态实现。其语法格式为:
object. Picture [=LoadPicture (picturefilename)]
说明:object为窗体对象名称,如Form1。
例如:通过LoadPicture( )命令为窗体Form1设置图片背景,其语句格式如下:
Form1.Picture = LoadPicture(“g:\VB\pic1.jpg”)
图2-45 设置了背景图片的窗体
⒂ StartUpPosition属性:该属性用于设置程序运行时窗体初次显示的位置。该属性只能在设计时通过属性窗口进行设置,在运行时不能使用。
(2)添加和移除窗体
&&&&& ① 添加窗体
在集成开发环境窗口上选择“工程”菜单中的“添加窗体”命令,在弹出的“添加窗体”对话框中,可在“新建”和“现存”这两个选项卡中添加新窗体和现存窗体。
② 移除窗体
移除窗体,可以在集成开发环境窗口上选择“工程”菜单中的“移除Form1”命令来进行。需要注意的是,将窗体从工程中移除,并没有将其从硬盘上删除。
③ 加载与卸载窗体
l利用Load语句加载窗体
利用Load语句可以把窗体加载到内存中。这里仅仅是加载到内存中,并没有显示出来,如果想显示出来需要使用Show方法。
语法:Load object
说明:object为所要加载的窗体对象的名称。
l利用Unload语句卸载窗体
在利用Load语句加载窗体以后,已经加载的窗体会占用一部分的内存,如果不将其卸载会使计算机的运行速度变慢,影响程序的执行。可以利用Unload语句可以将窗体从内存中卸载。
语法:Unload object
说明:object为所要卸载的窗体对象的名称。
注意:如果利用Unload语句卸载的窗体是工程中最后一个被卸载的窗体,此卸载将结束程序的执行。
(3)窗体的方法
① 显示窗体(Show方法)
利用Show方法可以显示一个窗体对象。其代码的语法格式为:
object. Show style, ownerform
object:表示窗体名称,例如Form1;
style:是一个可选的整数参数,它用于决定窗体是模式还是无模式。如果style为0,则窗体是无模式的;如果style为1,则窗体是模式的;
ownerform:是一个可选字符串表达式形式的参数,用来指定窗体的父子关系。可将某个窗体名传给这个参数,使得这个窗体成为新窗体的拥有者。
Form2.Show&&& & ‘无模式调用Form2窗体
Form3.Show 1&&& ‘有模式调用Form3窗体
② 隐藏窗体(Hide方法)
利用窗体的Hide方法可以将窗体对象隐藏,但不能使其卸载。如果调用Hide方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。语法格式为:
object. Hide
隐藏窗体时,它就从屏幕上被删除,并将其Visiable属性设置为False。用户将无法访问隐藏窗体上的控件。如果调用Hide方法时窗体还没有加载,那么Hide方法加载该窗体但不显示。
③ 移动窗体(Move方法)
利用窗体的Move方法可以移动窗体对象。语法格式为:
object. Move left, top, width, height
object为窗体对象名称,例如Form1;
left参数:必需的。单精度值,指示 object 左边的水平坐标 (x-轴)。
Top参数:可选的。单精度值,指示 object 顶边的垂直坐标 (y-轴)。
Width参数:可选的。单精度值,指示 object 新的宽度。
Height参数:可选的。单精度值,指示 object 新的高度。
上述4个参数中,只有 left 参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定 left 和 top 参数,则无法指定 width 参数。任何没有指定的尾部的参数则保持不变。
(4)窗体的事件
① 单击和双击(Click/DbClick事件)
这里需要说明的是,在Click事件中使用MsgBox将阻止DbClick事件的发生。因此,在程序开发中,应避免在同时存在Click事件和DbClick事件的Click事件中使用MsgBox函数。
② 载入和卸载(Load/Unload事件)
lLoad事件是在一个窗体被装载时发生。当使用Load语句启动应用程序,或引用未装载的窗体属性或控件时,此事件发生。其语法格式为:
Private Sub Form_Load()
Private Sub MDIForm_Load()
lUnload事件是当窗体从屏幕上被删除时发生。当使用在Control菜单中的Close命令或Unload语句关闭该窗体时,此事件被触发。其语法格式为:
Private Sub Form_Unload(cancel As Integer)
Form:为窗体对象。
cancel:一个整数,用来确定窗体是否从屏幕删除。如果cancel为0,则窗体被删除;将cancel设置为任何一个非零的值可防止窗体被删除。
③ 初始化(Initialize事件)
Initialize事件当应用程序创建Form、MDIForm时发生。其语法格式为:
Private Sub object_Initialize( )
注意:在使用Initialize事件时,要特别注意SetFocus方法的使用。不能在Initialize事件中使用SetFocus方法,如果使用将弹出“无效的过程调用或参数”。这是因为在触发Initialize事件时,TextBox控件还没有被加载到内存中,因此不能对其进行焦点设置。将Text1.SetFocus语句写在Load事件中即可。
④调整大小(Resize事件)
Resize事件当一个窗体对象第一次显示或当该窗口对象状态改变时发生。例如,一个窗体被最大化、最小化或被还原。其语法格式为:
Private Sub object_Resize( )
⑤ 焦点事件(GotFocus/
LostFocus事件)
lGotFocus事件
当对象获得焦点时产生该事件;获得焦点可以通过诸如&Tab&切换,或单击对象之类的用户动作,或在代码中用SetFocus方法改变焦点来实现。语法格式为:
Private Sub Form_GotFocus( )
lLostFocus事件
此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用SetFocus方法改变焦点的结果。
(5)窗体事件的生命周期
&& ① 窗体启动过程
窗体的启动过程,按照以下顺序进行:
Initialize事件 → Load事件 → Active事件
窗体的Initialize事件和Load事件都是发生在窗体被显示前,所以经常在事件过程中放置一些命令语句来初始化应用程序,但所能使用的命令语句是有限的,如SetFocus一类的语句就不能使用。而Print语句仅当窗体的AutoRedraw属性值为真(True)时,在Load事件中的Print语句才有效。
VB程序在执行时会自动装载启动窗体,在使用Show方法显示窗体时,如果窗体尚未载入内存,则首先将其载入内存,并引发窗体的Load事件。若想将窗体载入内存不显示,可利用Load语句实现。
② 窗体运行过程
窗体的运行过程,按照一下顺序进行:
GotFocus事件 → LostFocus事件 → Deactive事件
对于GotFocus事件,需要注意的是控件获得焦点的优先级要高于窗体获得焦点的优先级。对于多窗体的应用程序,当Form1由当前窗体变成非当前窗体时,若窗体是焦点或窗体上没有可以获得焦点的控件,则先触发LostFocus事件,后触发Deactive事件。当该窗体再次成为活动窗体时,只要该窗体加载完毕后没有卸载,就不会触发Load事件,但是会触发Active事件。
③ 窗体的关闭过程
窗体关闭时,是按照下面顺序进行的:
QueryUnload事件 → Unload事件 → Terminate事件
湖北广播电视大学导学中心理工教研室(C)版权所有
Powered By

我要回帖

更多关于 肝在左边还是右边 的文章

 

随机推荐