第5章常用控件5.1命令按钮、标签和文本框5.2复选框、单选钮和框架5.3列表框和组合框5.4滚动条5.5定时器5.6控件数组5.7常见错误及其处理5.8小结5.1.1命令按钮的常用属性1.Name(名称)属性控件的Name(名称)属性用以标识控件,具有惟一性。Name属性只能在属性窗口中设置,不能在程序运行时改变。VisualBasic的每个控件都有一个缺省的名称,为了操作方便、提高程序的可读性,可以考虑根据控件在程序中的实际作用,为其另取一个合适的名称,为方便编写程序代码,控件名称最好采用英文字母、数字和下划线组成,并能见名知意。对于每个控件在起名时微软都有相应的名称前缀建议。本书中,控件名称一般采用缺省的名称。对于本章介绍的常用控件,我们都会说明它们的缺省名称以及微软建议的名称前缀。命令按钮的缺省名称为Command1、Command2、……,微软建议的名称前缀为cmd。例如一个“开始”按钮的名称可以取为cmdStart。5.1.1命令按钮的常用属性2.Caption属性Caption属性返回或设置显示在控件上的标题。例如,本书第1章中介绍的窗体的Caption属性就是窗体标题栏上的标题文字。Caption属性的缺省值与控件的Name属性缺省值相同,如新建名称属性为Command1的命令按钮,其Caption属性的初值也是Command1。在设计界面时一般都要重新设置命令按钮的Caption属性,说明该按钮的功能,为了符合中国人的使用习惯,命令按钮的Caption属性通常用中文描述。此外,还可以利用命令按钮控件的Caption属性为该按钮设置一个访问键。在Caption中,在想要指定为访问键的字符前加一个“&”符号,该字符就带有一个下划线。在程序运行时,同时按下Alt键和带下划线的字符,就相当于单击命令按钮。例如,如果将命令按钮的Caption属性设置为“退出(&X)”,效果为,按下Alt+X键,触发该按钮的单击事件。5.1.1命令按钮的常用属性3.Enabled属性控件的Enabled属性返回或设置控件是否响应用户生成的事件,也就是该控件是否可用。Enabled属性值是一个逻辑常量,为False或True。当Enabled属性值为False时,命令按钮呈灰色、表示不可用;当Enabled属性值为True时,控件可用。Enabled属性的缺省值为True。Enabled属性可以在设计时设置,也可以在运行时用赋值语句为其赋值。例如,以下程序运行的结果是:程序开始运行时“退出”按钮是不可用的,只有在单击了“开始”按钮后才能激活“退出”按钮。5.1.1命令按钮的常用属性PrivateSubForm_Load()Command1.Caption=开始Command2.Caption=退出Command2.Enabled=FalseEndSubPrivateSubCommand1_Click()Command2.Enabled=True'以下是单击Command1后的执行代码……EndSub5.1.1命令按钮的常用属性4.命令按钮的其他属性(1)BackColor属性、Picture属性和Style属性。BackColor属性返回或设置控件中文字或图形的背景色。Picture属性返回或设置控件中显示的图形。要注意对于命令按钮设置的这两个属性还必须配合Style属性才有作用。Style属性用来设置命令按钮是标准的还是图形的。当Style属性设置为0时(缺省值),命令按钮是标准Windows按钮,如果将Style属性设置为1,命令按钮是图形按钮,可以显示设置的背景色或图形效果。5.1.1命令按钮的常用属性(2)Cancel属性。Cancel属性返回或设置一个值,用来指示窗体中命令按钮是否为取消命令按钮。当Cancel属性设置为True时,那么该按钮就成为取消命令按钮。当用户按Esc键时,相当于单击该按钮。窗体中只能有一个命令按钮为“取消”命令按钮,当某个命令按钮的Cancel属性设置为True时,窗体中其他的命令按钮的Cancel属性自动设置为False。(3)Default属性。Default属性返回或设置一个值,用来指示窗体中命令按钮是否为缺省命令按钮。当Default属性设置为True时,那么该按钮就成为缺省命令按钮。如果窗体上其他焦点控件不响应键盘事件,而且焦点不在其他命令按钮上,那么当用户按Enter键时,相当于单击该按钮。窗体中只能有一个命令按钮为缺省命令按钮,当某个命令按钮的Default属性设置为True时,窗体中其他的命令按钮的Default属性自动设置为False。5.1.1命令按钮的常用属性(4)Font属性。Font属性是一个对象,在属性窗口中设置Font属性将打开“字体”对话框,可以对字体、字形、大小和效果进行设置。如果通过程序代码设置,那么要设置Font对象的Name、Bold、Italic、Size、Underline、Strikethrough等属性,其中:Font.Name或FontName属性返回或设置在控件中显示文本所用的字体类型名称。该属性的缺省值为“宋体”。Font.Bold或FontBold属性返回或设置在控件中显示文本是否粗体。该属性值为True,则控件上所显示的文本字体加粗,该属性值为False(缺省值)时为不加粗。Font.Italic或FontItalic属性返回或设置在控件中显示文本是否斜体。该属性值为True,则控件上所显示的文本为倾斜,该属性值为False(缺省值)时为不倾斜。Font.Size或FontSize属性返回或设置在控件中显示文本的大小。该属性的缺省值为“小五”号字(9磅)。Font.Underline或FontUnderline属性返回或设置在控件中显示文本是否带下划线。该属性值为True,则控件上所显示的文本带下划线,该属性值为False(缺省值)时为不带下划线。Font.Strikethrough或FontStrikethru属性返回或设置在控件中显示文本是否加删除线。该属性值为True,则控件上所显示的文本加删除线,该属性值为False(缺省值)时为无删除线。5.1.1命令按钮的常用属性(5)Left、Top、Width、Height属性。uLeft属性返回或设置控件的左边界与它所在容器左边界之间的距离。uTop属性返回或设置控件的上边界与它所在容器上边界之间的距离。uWidth属性返回或设置控件的宽度uHeight属性返回或设置控件的高度。这4个属性确定了控件的位置和大小,缺省的度量单位为缇(Twip),1440缇=1in。(6)Visible属性。返回或设置一个值,决定控件运行时是否为可见。当命令按钮的Visible值设置为True时(缺省值),命令按钮可见;当Visible值设置为False时,命令按钮不可见。5.1.1命令按钮的常用属性(7)Value属性。在程序代码中设置命令按钮的Value属性为True,相当于调用执行该命令按钮的Click事件。Value属性只能在程序代码中访问,不能在属性窗口中设置。(8)ToolTipText属性。ToolTipText属性返回或设置鼠标在命令按钮上停留时的提示文本。这个属性对于图形按钮特别有用,可以提示按钮的功能。例如某个命令按钮的ToolTipText属性为“打开帮助文件”,那么程序运行时,当鼠标在该按钮上停留的时效果为:5.1.2命令按钮的常用事件命令按钮的常用事件是Click事件,命令按钮的功能是通过编写命令按钮的Click事件程序代码实现的。例如,Command1的Caption设置为“退出”,表示这是一个退出程序运行的按钮,为了能实现退出程序的功能,在代码窗口中可以加入以下程序段:PrivateSubCommand1_Click()EndEndSub用户触发命令按钮事件的方式有以下几种:(1)鼠标单击命令按钮。(2)在命令按钮获得焦点时,按Enter键。(3)对于设计了访问键的命令按钮,按Alt+访问键。5.1.3标签的常用属性1.Caption属性与命令按钮相似,标签的Caption属性返回或设置标签的显示文本。运行时,标签的文本不能直接进行编辑,但是可以由程序代码控制,通过赋值语句改变Caption属性。标签控件也可以通过字符前加一个“&”符号设置访问键。由于标签控件本身不能获得焦点,按下Alt+访问键会将焦点移到焦点顺序在标签后面的下一个可以获得焦点的控件上。注意:可以按Tab键依次在建立在窗体上的可以获得焦点的控件上移动焦点。TabIndex属性确定控件响应Tab键的顺序。TabIndex属性的值依照控件建立的顺序自动获得,第一个建立的控件的TabIndex值为0。可以重新设置控件的TabIndex属性来改变按Tab键获得焦点的顺序,通常将希望程序运行后第一个自动获得焦点的控件的TabIndex属性设置为0。5.1.3标签的常用属性主动将焦点移动到指定的控件上,可以运用控件的SetFocus方法。格式为:控件名称.SetFocus不能获得焦点的控件不支持SetFocus方法,例如标签控件。2.AutoSize属性和WordWrap属性(1)AutoSize属性返回或设置控件是否自动改变大小以显示所有内容。(2)WordWrap属性返回或设置控件是否扩大以显示所有内容。当Caption的文本超过标签的宽度时,若标签的Autosize属性值为False(缺省值),则保持标签的大小不变,超出部分不予显示(如图5-1中上面一个标签所示);若标签的Autosize属性值为True,而且WordWrap属性为False(缺省值),则自动增加标签的宽度以显示全部内容(如图5-1中间一个标签所示);若标签的Autosize属性值为True,而且WordWrap属性也为True,则保持标签的宽度不变增加标签的高度以显示全部内容(如图5-1下面一个标签所示)。5.1.3标签的常用属性图5-1标签AutoSize属性和WordWrap属性示意3.Alignment属性Alignment属性返回或设置标签中文本的对齐方式。当Alignment属性值为0时(缺省值),文本在标签中左对齐;当Alignment属性值为1时,文本在标签中右对齐;当Alignment属性值为2时,文本在标签中居中对齐。5.1.3标签的常用属性4.BackStyle属性BackStyle属性返回或设置控件的背景样式是否透明。当标签的BackStyle属性值为0时,标签的背景是透明的;当标签的BackStyle属性值为1(缺省值)时,标签的背景不透明,背景色即BackColor属性所设置的颜色。5.BorderStyle属性BorderStyle属性返回或设置控件的边框样式。标签的BorderStyle属性值为0(缺省值)时,无边框;标签的BorderStyle属性值为1时,有边框。5.1.4标签的常用事件标签框控件的常用事件有Change、Click、DblClick等事件。但在程序设计中,习惯上还是将标签作为文本显示使用,较少设计标签的事件过程。5.1.5文本框的常用属性文本框通常用于在运行时输入和输出文本,是计算机与用户进行信息交互的控件。工具箱中文本框控件的图标为。文本框控件的缺省名称为Text1、Text2、……,微软建议的名称前缀为txt。与标签控件不同的是,文本框中的文本可以在程序运行过程中让用户直接进行编辑修改,除非将文本框的Locked属性设为True,使文本框的Text属性成为只读属性。1.Text属性Text属性返回或设置文本框中的文本。Text属性是文本框控件最重要的属性之一,可以在设计时设置Text属性,也可以在运行时直接在文本框内输入、或通过程序代码对Text属性重新赋值来改变Text属性的值。5.1.5文本框的常用属性2.MaxL