1、1第五章 VB 常用控件 .15.1 文本控件 25.1.1 标签(Label)控件 .25.1.2 文本框(TextBox ) 控件 35.2 命令按钮(CommandButton) .105.2.1 常用属性 .105.2.2.常用事件 .115.2.3. 应用举例 .115.3 选择控件 复选框和单选按钮 135.3.1 复选框(CheckBox)控件 135.3.2 单选按钮(OptionButton)控件 .155.4 选择控件 列表框 .175.4.1 常用属性 .175.4.2 常用事件 .195.4.3 常用方法 .205.4.4 应用举例 215.5 选择控件 组合框 245
2、.5.1 常用属性 .245.5.2 组合框常用事件 .265.6 滚动条(ScrollBar)控件 .285.6.1 滚动条(ScrollBar)控件的属性 .295.6.2 滚动条(ScrollBar)事件 .295.6.3 滚动条事件举例 305.7 框架(Frame) 315.7.1 在框架内添加控件 .315.7.2 常用属性 315.7.3 框架(Frame)控件的响应事件 315.8 图形控件 335.8.1 图片框(Picture Box )和图像框(Image Box )控 件 .335.8.2 形状(Shape)和直线(Line)控件 .365.9 计时器控件(timer)
3、 .395.9.1 属性 .395.9.2 事件 405.9.4 计时器控件应用举例(举一个红绿灯 ).405.10 对话框(Dialog Box) 425.10.1 预定义对话框 425.10.2 自定义对话框 .475.10.3 通用对话框(Common Dialog) .475.11 进度条(ProgressBar )控件 595.12 常用系统对象 .615.12.1 Clipboard(剪贴板)对象 .615.12.2 Clipboard 常用的方法 615.13 焦点与 Tab 次序 .625.13.1 设置焦点 .6325.13.2 设置 Tab 顺序 645.14 控件数组 6
4、53第五章 VB 常用控件学习目 标1.掌握:标签、文本框、命令按钮、图片框、框架、单选钮和复选框的基本用法;2.理解:组合框、滚动条、记时器的基本用法; 3.掌握:两个交互性函数的使用方法;4.掌握:剪贴板的用法; 5.理解:焦点概念及焦点的设置方法。学习要点 控件概念及其属性、方法、事件的应用;两个交互性函数的使用方法;剪贴板的用法及焦点的设置方法。在窗体上用于输入、输出信息的图形或文字符号称为控件。控件是构成用户界面的基本元素,为了方便用户 开发应用程序, VB 提供了三类控件,第一类是标准控件(或称内部控件) , 是 windows 本身的资源,如工具箱中的标准控件(共 20 个),不
5、能添加和删除;第二类是 ActiveX 控件(外部控件), ActiveX 控件是一个提供特定功能的二进制对象。程序开发人 员可以把 ActiveX 控件添加到自己 编写的程序中。 ActiveX控件是扩展名为.Ocx 的控件;第三类是可插入控件,可插入对象也是一种 ActiveX 控件,只是插入的对象本身就是一个应用程序。由于 可插入对象也能够添加到工具箱内,因此可插入对象使用与使用工具箱中普通控件一样。几乎所有用 VB 编写的应用程序都要用到窗体上的控件。控件是包含在窗体 对象中的对象。命令按钮、列表框以及滚动栏都是控件。每种类型的控件都有自己的一组属性、方法和事件,用于相应的特定目的。V
6、B 中的窗体和每一个控件都有很多属性,但窗体和大多数标准控件都具有如下2基本属性,见下表:Name (名称) Name(名称)属性指所创建 对象的名称(建议窗体用汉字命名,控件一般使用系统默认名)。Caption Caption 属性用于设置控件上显示的文字内容。Height、Width、Top、Left 这四个属性用于设置控件的高度、控件的宽度、控件离屏幕顶部的距离、控件离屏幕左边的距离。Enabled Enabled 属性用于设置对象的可操作性(其值为:True、False )。Visible Visible 属性用于设置对象的可见性(其值为:True、 False)。Font Font
7、属性用于 设置对象的字体。ForeColor ForeColor 属性用于设置对象的前景颜色(字体颜色)。BackColor BackColor 属性用于 设置对 象的背景颜色。BorderStyle Border Style 属性用于设置对象的边框样式(0:无,1:单边)。Alignment Alignment 属性用于设置对象的对齐方式(0:左对齐,1:右对齐,2:居中)AutoSize 当对象的 AutoSize 属性为 True 时:自动3调整大小;当 AutoSize 属性为 False 时:不可调,若正文太长则自动裁掉。WordWarp 当对象的 Word Warp 属性 为 Tr
8、ue 时:垂直方向显示文本。TabIndex TabIndex 属性用于决定按下 Tab 键时,焦点在各个控件中移动的顺序。ToolTipText 设置鼠标暂停在控件上显示的提示。可以通过属性窗口,也可以通过程序设置,例如:Label1.ToolTipText = “提示!“ 5.1 文本控件与文本控件有关的标准控件有两个,即标签控件和文本框控件。标签和文本框都是用来在程序中显示文本信息的控件。但它们在显示文本时的功能存在区别。在标签中只能显示字符文本,并且显示的文本不能被用户进行编辑;而文本框不但可以显示文本,并且允许用户对显示的文本进行各种编辑操作,所以,用 户也可以利用文本框进行字符信息
9、的输入。5.1.1 标签(Label)控件 标签(Label)控件是 VB 中输出文本信息的常用工具,目前几乎取代了 Print 方法。主要用来在固定位置显示文本,且仅用于显示文本。它所显示的内容只能用 Caption属性来设置或修改,不能直接编辑。 标签常用来标注自身没有 Caption 属性的控件,如用标签为文本框、列表框和组合框等控件附加描述性信息。标签的默认名称(Name)和标题(Caption)都为 LabelX(X 为编号,从 1,2,依次 顺延)。1. 常用属性标签的部分属性,如名称、Caption、BorderStyle、 Enabled、ForeColor 、Font、 He
10、ight、Visible 、Width、Top 与 Left 等属性,与窗体及其他控件属性相同。另外, 还4可以使用如下属性:1 Alignment 属性该属性用来确定标签中文本对齐方式。设计时可以通过属性窗口设置,共有三个属性值。 属性值的描述见下表:常数 设置值 描述VbLeftJustify 0 (缺省值)文本左对齐。VbRightJustify 1 文本右对齐VbCenter 2 文本居中该属性的设置也可以在程序运行时通过代码进行设置,语句格式为:对象.Alignment = 常数/设置值2 AutoSize 属性该属性用来设置标签是否能够根据标题的内容自动调整大小。设计时可以通过属性
11、窗口设置,共有两个属性 值, 缺省值为 False。当 设置值为 True 时,标签可根据其中标题的内容自动调整大小,即把所有的文本都显示出来;设置值为 False 时,不论标题内容有多少,标签保持设计时定义的大小,超出的部分不显示。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.AutoSize = False/True3 BackStyle 属性该属性用来设置 Label 控件或 Shape 控件的背景是透明的还是非透明的。设计时可以通过属性窗口设置,共有两个属性值 0、1,缺省 值为 1。当设置值为 1 时,Label 控件的背景是非透明, 用控件的 BackColor
12、属性设置值填充该控件,并隐藏该控件后面的所有颜色和图片。若设置值为 0 时, Label 控件的背景是透明的,控件后的背景色和任何图片都是可见的。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.BackStyle = 1/054 WordWrap 属性该属性用来设置标签是否可以在垂直方向上变化大小以适应标题内容的大小。设计时可以通过属性窗口设置,共有两个属性值 False 和 True,缺省值为 False。当设置值为 True 时,则标签 可以在垂直方向上变化,但 AutoSize 的值必须也为True,否则标签 不能在垂直方向上 变化。该属性设置也可以在程序运行时通过代码进
13、行设置,语句格式为:对象. WordWrap =False/True注意:若要标签在水平方向上变化大小以适应标题内容的大小,AutoSize 的值为True,WordWrap 的值为 False。2. 常用事件1)Change 事件:当标签的内容更改时触发 Change 事件。例如:在程序运行中用程序代码更改标签内容时触发 Change 事件。Private Sub Command1_Click() 单击命令按钮改变标签默认属性值Label1.Caption = “ok“ 程序代码 End SubPrivate Sub Label1_Change()Print “利用程序代码引发 Label1
14、 的 Change 事件“End Sub2)Click 事件:单击事件 ,点击标签触发该事件。3)Dbclick 事件:双击事件 ,双 击标签时触发该事件。3. 其它用法 标签除了直接在设计时设置之外,也常在运行时使用程序代码来显示时间和日期。Time$是一个与时间有关的函数,由于它的返回值是字符串,Date$是一个与日期有关的函数,由于它的返回值是字符串,因此可以把它们赋值给标签的标题, 这样就可以用标签来显示时间和日期。例如:利用标签显示时间。6Label1.caption=Time$当要在标签中同时显示 2 行以上的字符串,可以通过程序代码实现,在字符串之间加上 chr$(13)+ ch
15、r$(10)控制码(分别表示回车和换行字符)。例如:利用标签显示时间和日期。Label1.Caption = Time$ & Chr$(13) + Chr$(10) & Date$5.1.2 文本框(TextBox) 控件1. 常用属性文本框(TextBox)是一个文本编辑区,用户可在文本区输入、编辑、修改文本,也可以显示文本。文本框的默 认名称(Name)和 Text 属性缺省值为 TextX(X 为编号,从1,2,依次顺 延)。 文本框的部分属性,如名称、BorderStyle、Enabled、Forecolor 、Font、 Height、Visible 、Width、Top 与 Lef
16、t 等属性与窗体及其他控件的属性相同。另外,还 可以使用如下属性: max1 Locked 属性该属性用于设置文本框是否可编辑。设计时可以通过属性窗口设置,共有两个属性值,缺省值为 False,表示可以编辑文本框中的文本;当属性设置值为 True,表示不能编辑文本框中的文本,但可以在运行时,通 过程序代码改变文本框中的内容。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象. Locked =False/True 2 Maxlength 属性该属性用于设置文本中输入字符的长度。设计时可以通过属性窗口设置,缺省值为“0”。指出 对 于用户系统上单行 TextBox 控件来说,最大值不
17、能超过被内存强制建立的值,并且对于多行 TextBox 控件而言,最大值大约为 32K。任何大于 0 的数表示字符数的最大值。该属性的设置也可以在程序运行时通过代码进行设置,语句格式为:对象. Maxlength =数值注意:VB 中所有的字符长度均为“双字节”。73 Multiline 属性该属性用于设置 TextBox 中的文本能否换行。设计时可以通过属性窗口设置,共有两个属性值,缺省值为 False。若其属性值为 False,则 TextBox 中的文本不能换行;若其属性值为 True , ScrollBars 设置为 None (0),则无滚动条。注意:Multiline 和 Scro
18、llbars 属性只能在设计时设置,不能在运行时通过程序代码设置。4 Text 属性该属性用于显示文本框中的信息。设计时可以通过属性窗口设置,缺省值为Text1。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.Text =字符串注意:若在文本框中进行多行输入,要把 MultiLine 属性设置为 True。换行输入,按 Ctrl+回车键 ;结束输入, 则按回车键。 见图 5-1 所示。另外, MultiLine 属性设置为False, Textbox 控件的 Text 设置值最多可以有 2048 个字符,反之为 32K。图 5-15 Scrollbars该属性用于设置 Text
19、Box 是否具有滚动条,并设置滚动条的样式。只能在设计时通过属性窗口设置,共有四个属性值, 属性值的描述 见下表:常数 设置值 描述VbSBNone 0 (缺省值)无滚动条VbHorizontal 1 水平滚动条8VbVertical 2 垂直滚动条VbBoth 3 水平、垂直两种滚动条注意:设置值为 1、2 或 3 有效的前提是 MultiLine 属性必须设置为 True;滚动条只在对象的内容超过对象的边框时才被显示在对象上(可用)。6 PasswordChar 属性该属性用于设置用何种显示字符掩饰用户输入的字符(常用于密码口令的输入)。设计时可以通过属性窗口设置,将 PasswordCh
20、ar 设置为长度为 0 的字符串 (“ “) (缺省值),将显示实际的文本。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.PasswordChar =字符串 例如:每次单击窗体,文本将在星号 (*) 密码和普通文本之间转换。Private Sub Form_Click()If Text1.PasswordChar = “ ThenText1.PasswordChar = “*“ElseText1.PasswordChar = “End IfEnd Sub注意:能够将任意字符串赋予此属性,但只有第一个字符是有效的,其余的字符将被忽略;另外,如果 MultiLine 属性被设为
21、True,那么 设置 PasswordChar 属性将不起作用。7 TabStop 属性该属性用于设置文本框是否能够获得焦点。设计时可以通过属性窗口设置,缺省值为 True。若该属性值为 True,表示使用 Tab 键能将焦点移动到该对象;若该属性值为 False,表示当用户按下 Tab 键时,将跨越 该对 象,虽然该对象仍然在实际的 Tab 键顺序中保持其位置,按照 TabIndex 属性的决定。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:9对象.TabStop =True/False 8 TabIndex 属性该属性用于返回或设置父窗体中大部分对象的 Tab 键次序。设计时可
22、以通过属性窗口设置,缺省情况下,在窗体上画控件 时 VB 会分配一个 Tab 键顺序,TabIndex 属性 值 “Index”是从 0 到 (n-1) 的整数。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.TabIndex = index 说明:缺省情况下, Menu、Timer、Data、Image、Line 和 Shape 控件不包括在 Tab 键顺序中。运行时,不可见或无效的控件以及不能接收焦点的控件(Frame 和 Label 控件)仍保持在 Tab 键顺序中,但在切换时要跳过这些控件。每个新控件都放在 Tab 键顺序的最后。如果改变控件的 TabIndex 属性值
23、来调整缺省 tab 键顺序, VB 会自动对其它控件的 TabIndex 属性重新编号,以反映出插入和删除操作。可以在设计时用属性窗口或在运行时用代码来作改变。9 SelStart 属性SelStart 是运行 时属性,用于返回或设置焦点(光标 )在文本框中文本的位置(文本的起始位置为 0)。该属性在 设计时不可用。 语句格式 为:对象.SelStart =数值表达式10)SelLength 属性SelLength 是运行 时属性,用于返回或设置文本框中选择的字符数。 该属性在设计时不可用。语句格式为:对象.SelLength =数值表达式11)SelText 属性SelText 是运行时属性
24、,用于返回或设置文本框中所选择文本的字符串。如果没有10字符被选中,则为零长度字符串 (“)。该属性在设计时不可用。 语句格式为:对象.SelText =字符串表达式SelStart、SelLength、SelText 这几个运行时设置的属性,常用在文本编辑中设置插入点及范围、选定字符串、清除文本等。 例如:在 Text1 文本框中有长度不为零的字符串,利用这几个属性可以在 Text1 文本框中进行如下 设置: 设置插入点Text1.SelStart = 0 插入点放在字符串起始处Text1.SelStart = 3 插入点放在字符串第 3 个字符之后Text1.SelStart = Len(
25、Text1.Text) 获取字符串长度并将插入点放在字符串结尾处 选中文本框 TextBox 内文字Text1.SelLength = Len(Text1.Text) 选中整个字符串并获取字符串长度Print Text1.SelLength 将选中文本赋给变量Bl= Text1.SelText 将选中文本赋给变量 Bl 将选中文本用“新字符串 “替代Text1.SelText = “新字符串 “ 如果“ 新字符串“ 是空字符串,则“空字符串替换选中的文本,并且使插入点放到在新插入文本尾之后。如果没有被选定的文本, 则该“新字符串”就粘贴到文本框中的插入点处。例如:观察对 Text1、Text2
26、 的操作。要求:1. 选中 Text1 中所有文本或 Text1 中部分文本,则清空被选中的部分文本。2. 选中 Text1 中的文本,在选中 Text2 中的文本,则被选中的 Text1 文本替换。Dim x As String 注意 变量 X 声明位置11Private Sub Text1_Click()x = Text1.SelTextText1.SelText = “End SubPrivate Sub Text2_Click()Text2.SelText = xEnd Sub例如:运行下面程序体会“SelLength、 SelStart、SelText 属性”的用法。Dim x As
27、 StringPrivate Sub Form_Load()Txtys.Text = “体会 SelLength,SelStart,SelText 属性的用法。 “Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseEnd SubPrivate Sub Txtys_Click() 选定Command1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseTxtys.Text = “体会 SelLength、SelStart、SelTe
28、xt 属性的用法。“TxtStart.Text = Txtys.SelStartTxtLength.Text = Txtys.SelLengthEnd SubPrivate Sub Command1_Click() 复制x = Txtys.SelTextText1.SelText = Txtys.SelTextCommand2.Enabled = FalseCommand3.Enabled = FalseEnd SubPrivate Sub Command2_Click() 剪切Command3.Enabled = TrueCommand1.Enabled = Falsex = Txtys.S
29、elTextTxtys.SelText = “End SubPrivate Sub Command3_Click() 粘贴12Text1.SelText = xCommand1.Enabled = FalseCommand2.Enabled = FalseEnd Sub图 5-22. 常用事件 文本框支持 Click、 Dbclick 等鼠标事件,同时也支持如下事件:1) Change 事件:当用户向文本框中输入新的文本,或在程序运行中对文本框的 Text属性进行更改时,都将触发其 Change 事件。2) GotFocus 事件:对象获得焦点事件。当运行程序时,利用 Tab 键或用鼠标单击对
30、象,或用 SetFocus 方法使焦点(光标)定位在对象上时,都会触发该事件。例如:当文本框获得焦点后,自动选择文本框内全部内容。Private Sub Form_Load()ShowText1.SetFocusEnd SubPrivate Sub Text1_GotFocus()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End Sub3) LostFocus 事件:对象失去焦点事件。 当按下 Tab 键或用鼠标单击窗体上其他对象而使该文本框失去焦点时触发该事件。例如:当文本框失去焦点后,把文本框中内容赋给标签。Private Sub
31、 Text1_LostFocus()Label1.Caption = Text1.Text13End Sub例如:一个文本框(Text1),初始状态下内容为空;当 获得焦点时,文本框内容显示“文本框获得焦点 “字样;当 单击命令按钮(Command1),文本框失去焦点,则显示“文本框失去焦点“ 字样,文本框回到初始状态;具体程序如下:Private Sub Command1_Click()Text1.Text = “Text1_LostFocusEnd SubPrivate Sub Text1_GotFocus()Text1.Text = “文本框获得焦点“End SubPrivate Sub
32、 Text1_LostFocus()Text1.Text = “文本框失去焦点“End Sub4) KeyPress 事件:当焦点在当前文本框中,当用户按下并释放键盘上某键时引发的KeyPress 事件,在 该事件发生的同时,返回用 户输入字符的 ASCII 码值(十进制)。例如:将输入文本框内的字符及相对应的 ASCII 码打印到窗题体上。程序如下:Private Sub Text1_KeyPress(KeyAscii As Integer)Dim zf As Stringzf = Chr(KeyAscii) KeyAscii 为按键的 Ascii 值 (ALT 键除外)Print zf,
33、KeyAscii End Sub注:KeyPress 事件中 Ascii 码与常用键盘的字母及符号对应为:8 对应BackSpace、45 对应减号 - 、46 对应小数点 . 、48-57 对应数字 0-9。例如:限制输入到文本框中的数据,如文本框接收的数据只能为“数字”、英文字母、退格键和下划线,并退出过程;若输入的数据不是 规定数据后,立即 给出提示信息。程序如下:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 65 And KeyAscii = Asc(“a“) And KeyAscii = Asc(“0“) A
34、nd KeyAscii 57 Or KeyAscii 8 ThenMsgBox “你输入的一个数据不是数字,请重新输入“KeyAscii = 0 KeyAscii 为一空值Text1.Text = Chr(KeyAscii) 转换成字符串是一空串SendKeys “Home+End“SendKeys “BACKSPACE“15Text1.SetFocusEnd IfEnd Sub(*)上面程序在解决文本框中接收数据时有这样一个问题,即当文本框接收不是数字时,前面已经接收的数字也一同被清空,下面提供的程序可以解决这个问题。Private Sub Text1_KeyPress(KeyAscii A
35、s Integer)If KeyAscii 57 Or KeyAscii 8 ThenText1.Text = Text1.Text + Chr(KeyAscii)MsgBox “你输入的数据 “ & Chr(KeyAscii) & “ 不是数字, 请重新输入“SendKeys “BACKSPACE“SendKeys “End“Text1.Text = Left$(Text1.Text, Len(Text1.Text) - 1)End IfEnd Sub3. 常用方法SetFocus 方法:用于将焦点 (光标)移到指定的文本框中(该方法主要用于程序中)。语句格式为:对象.SetFocus例如:
36、执行下面程序代码,将焦点 (光标)移到 Text1 上。Text1.SetFocus 例如:通过下面的例子来说明标签与文本框的用法。要求设计一窗体如图 5-2 所示,用于显示输入的姓名、性别、年 龄。点击输入按钮进 行文本框内容的清空,点 击显示按钮则在最下面的标签 4 中显示输入的内容,点 击退出按钮退出程序。对象属性设置见下表:对 象 名称(Name) 标题(Caption) 文本(Text )窗体 Form1 VB 测试系统文本框 1 Text1 无 空白文本框 2 Text2 无 空白文本框 3 Text2 无 空白标签 1 Label1 姓名 无16标签 2 Label2 性别 无标
37、签 3 Label3 年龄 无标签 4 Label4 无 空白命令按钮 1 Command1 输入 无命令按钮 2 Command2 显示 无命令按钮 3 Command3 结束 无图 5-2Private Sub Form_Load()Label4.Caption = “End SubPrivate Sub Command1_Click() 输入Text1.Text = “Text2.Text = “Text3.Text = “Text1.SetFocusLabel4.Caption = “ “End SubPrivate Sub Command2_Click() 显示输入内容Label4.
38、Caption =Label1.Caption & Text1.Text & Label2.Caption & Text2.Text & Label3.Caption & Text3.TextEnd SubPrivate Sub Command3_Click() 结束EndEnd Sub练习题一:编写程序把“选择文本框 1 的内容” 赋给变 量 A,再把“ 选择文本框 2 的17内容”赋给变 量 B,最后单击 “显示”命令按钮,将 A、B 变量中的内容显示在 Label3 内。界面如下图:练习题二:编写程序只允许文本框接收英文大写字母和退格键。5.2 命令按钮(CommandButton) 命
39、令按钮是 VB 应用程序中最常用的控件,它的默认名称(Name)和标题(Caption)都为 CommandX(X 为编号,从 1,2,依次顺延)。 在应用程序中,命令按钮主要用于运行某一个事件过程。在运行时可以用鼠标、键盘按下述方法选择操作命令按钮:1. 用鼠标单击按钮;2. 按 TAB 键,将焦点转移到按钮上,然后按 SPACEBAR 或 ENTER 键选定按钮;3. 按命令按钮的快捷键(ALT+ 带有下划线的字母);4. 若命令按钮是窗体的缺省命令按钮,直接按 ENTER 键选定按钮;5. 若命令按钮是窗体的缺省取消按钮,则可按 ESC 键选定按钮;6. 单击它时将调用已写入 Click
40、 事件过程中的命令。5.2.1 常用属性命令按钮的部分属性,如名称、Enabled、 Font、 Height、Visible 、Width、Top 与 Left 等属性,与窗体及其他控件属性基本相同。另外,还可以使用如下属性:1. Caption 属性用于使用文字来标识命令按钮的功能,最多 255 个字符。该属性也可为命令按钮创建快捷键,如果在所输入的某字母前加一个“&” 连 字符, 则该字母就会成为命令按钮的快捷键。使用时按下+健,就等于按下 该命令按钮。例如:要 为标题 18“Print“ 创建访问键,应在字母 “P“ 前添加“&” 连 字符,于是得到 “&Print“。运行 时,字母
41、“P“ 将带下划线,同时按 ALT+P 键就可选定命令按钮。2. Default 属性用于设置第一个可执行的命令按钮,其缺省属性值为 False。若窗体中有多个可以获得焦点的控件及多个命令按钮时,将其中一个命令按钮的 Default 设置为 True,程序运行后,不管焦点在其他哪类控件(如文本框)上,按 Enter 键,就相当于单击该命令按钮(除非用户将焦点移到同一窗体的另外一个命令按钮上。在这种情况下,按 ENTER 键选择有焦点的命令按钮,而不是缺省命令按钮)。该属性可以通过属性窗口设置, 也可以在程序运行 时通过代码进行设置, 语 句格式为:对象.Default= True / Fals
42、e3. Cancel 属性该属性用于设置默认的第一个可执行的取消命令按钮,其缺省属性值为 False。当窗体中有多个命令按钮时,只能将其中一个命令按钮的 Cancel 属性值设置为 True,程序运行后,不管焦点在其他哪类控件(如文本框)上,按 Esc 键,就相当于 单击了该按钮。该属性设计时可以通过 属性窗口设置, 也可以在程序运行时通过代码进行设置,语句格式为:对象.Cancel= True / False4. Value 属性该属性在设计时可以通过属性窗口设置。Value 值若为 True 表示该按钮被按下,并触发该命令按钮的 Click 事件。Value 属性缺省值为 False,表示
43、未选择按钮。该属性也可以在程序运行时通过代码进行设置,来触发命令按钮的 Click 事件,语句格式为:对象.Value=True/False例如:19Private Sub Command1_Click()Command2.Value = True 在代码中触发 Command2 的 Click 事件End SubPrivate Sub Command2_Click()Print “单击 Command1 触发 Command2 的 Click 事件“End Sub5. Style 属性该属性用来设置命令按钮外观。只能在设计时通过属性窗口设置,Style 属性共有二个属性值 0、1,缺省值为
44、0。属性值的含义见下表:0:(Standard)标准 命令按钮上不能显示图形和背景颜色。1:(Graphical)图形 命令按钮上可显示图形,还可以改变按钮颜色。当 Style 属性设置为图形后,可以用 Picture、DownPicture 和 DisabledPicture 属性或 LoadPicture()函数加 载图片增强视觉效果。比如要向命令按钮添加图标或位图,或者在单击、禁止控件时显 示不同的图象。6. DownPicture 属性该属性在设计时可以通过属性窗口设置返回或设置一个对图片的引用。该图片在控件被单击并处于压下状态时显示在控件中。该属性也可以在程序运行时通过代码进行设置,
45、 语句格式为:对象.DownPicture = 图片 例如:7. Private Sub Form_Load() 先把图片加载到 DownPicture 属性中Command1.DownPicture = LoadPicture(“c:PLANE2.ICO“)End SubPrivate Sub Command1_Click() 在单击 Command1 会立即看到图片Command1.DownPicture = LoadPicture(“c:PLANE2.ICO“)End Sub8. DisabledPicture 属性20该属性在设计时可以通过属性窗口设置,用于返回或设置一个对图片的引用。
46、当控件 Enabled 属性被设 置为 False 时, 该图片在控件无效时显示在控件中。该属性也可以在程序运行时通过代码进行设置,语句格式为:对象.DisabledPicture = 图片9. ToolTipText 属性该属性在设计时可以通过属性窗口设置,用于返回或设置一个工具提示。当用户定义了图形按钮后,设计时 可以设置 ToolTipText 属性中的文字提示,以解释按钮的功能。使用前提是该命令按 钮可用,即 Enabled 属性为 Ture。该属性也可以在程序运行时通过代码进行设置,语 句格式为:对象.ToolTipText = 字符串5.2.2.常用事件命令按钮的常用事件是 Cli
47、ck 事件(当 单 击 鼠 标 左 键 时 发 生 ),不支持双 击(Dbclick)事件。当 CommandButton 控 件 的 Default 属性设置为 True ,使命令按 钮成为缺省的“活动按钮“,可用Enter键选 中,相当于触 发 了单击事件;当 CommandButton 控 件 得 Cancel 属性设置为 True,使命令按钮成为缺省的“取消按钮“,可用 Esc键选中,相当于 触 发 了单击事件;当 CommandButton 控 件 具 有 焦 点 时 ,按 下 SPACEBAR 键 ,也 相当于触 发了单击事件。当 CommandButton 控 件 上 有 快 捷
48、 访 问 键 。例 如 ,如 果 一 个 CommandButton控 件 的 标 题 是 “ Command1&C “,则 按 下 ALT+C 键 可 触 发 了 单击事件。5.2.3. 应用举例Command1.Visible =False命令按钮不可见Command1.Enabled=True 命令按钮无效 21例如:设计一个输入密码的界面,如图 5-3 所示。程序运行后,在文本框内输入密码,然后 单击命令按钮“ 确定 “或按“回车键“ 确定密码输 入,若密码正确文本框内显示“密码输入正确!“ 字样;反之,密 码错误在窗体标题上显示“密码有误,重新输入“字样。图 5-3对象属性设置见下表
49、:对象 属性 设置Name Form1Caption 请输入密码窗体ControlBox FalseName Text1文本框PasswordChar *Name Command1命令按钮 1Caption 确定Name Command2命令按钮 2Caption 结束程序代码如下:Private Sub Form_Load()Show 必须有此语句Text1.Text = “Text1.SetFocusEnd SubPrivate Sub Command1_Click()Dim password As Stringpassword = Text1.TextIf password = “1234“ ThenText1.PasswordChar = “ 清除 PasswordChar 属性设置22Text1.Text = “密码输入正确!“ElseForm1.Caption = “密码有误,重新输入“Text1.Text = “Text1.SetFo