《第6章命令按钮、复选框、单选按钮和框架.ppt》由会员分享,可在线阅读,更多相关《第6章命令按钮、复选框、单选按钮和框架.ppt(68页珍藏版)》请在课桌文档上搜索。
1、第6章 命令按钮、复选框、单选按钮和框架,6.1 命令按钮6.2 复选框6.3 单选按钮6.4 框架6.5 控件数组习题,命令按钮,大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。,命令按钮控件CommandButton,使用CommandButton控件创建,可以有不同的外观:,Caption属性:该属性设定按钮显示的文字。Style属性:控制按钮的显示类型,共有两种取值:标准类型和图形类型。Picture属性:指定按钮中显示的图片。BackColor属性:指定按钮的背景颜色。Tooltiptex属性:指定按钮提示信息,命令按钮的快捷访问键,访问键为
2、按钮的选中提供了一种快捷方式,即同时按下ALT键和访问键等同于鼠标单击该按钮。热键可以提高键盘操作的速度。方法:使用按钮的Caption属性赋予按钮一个访问键。在标题中,在想要指定为访问键的字符前加一个“&”符号,该字符就会带有一个下划线。比如:&Next,&Last,命令按钮的响应,使用CommandButton控件创建,只要用户单击按钮,就会调用Click事件过程程序执行有以下方法选中命令按钮:鼠标单击按钮用Tab键把焦点移到按钮上,按空格或回车键使用按钮的快捷键(Alt+有下划线的字母)Caption属性的快捷字符前插入符号“&”在程序代码中设置按钮的Value属性为True在代码中直接
3、调用按钮的Click事件,命令按钮示例1,【例】点击一个按钮,发出铃声界面元素组成:一个命令按钮控件:Command1编写Click事件过程(双击按钮即可进入代码窗口)Private Sub Command1_Click()BeepEnd Sub,命令按钮示例2,【例】在窗体上添加一个按钮,实现窗口的最大化和还原。,命令按钮示例2,设计一个命令按钮,命名为cmdSize(窗体的MaxButton和MinButton属性均设置为False):在窗口第一次显示时,按钮标题为“最大化(&L)”。点击按钮后将窗口最大化,并且标题变成“还原(&B)”。再点击设置窗口还原,标题又恢复为“最大化(&L)”。
4、Private Sub cmdSize_Click()If cmdSize.Caption=最大化(&L)Then Me.WindowState=2 cmdSize.Caption=还原(&B)Else Me.WindowState=0 cmdSize.Caption=最大化(&L)End IfEnd Sub,Visual Basic提供的Enabled(可用)属性用来控制对象是否可用。当Enabled的属性值为True(-1)时,表示对象可用,为False(0)时,使对象“不可用”(即暂时失效)。,6.1.1 使用Enabled属性使命令按钮可用或不可用,可以在设计阶段设置Enabled属性
5、的值,也可以在程序运行阶段改变Enabled属性的值。如用户未指定它的值,系统指定的隐含值为True(-1),即“可用”。【例6.1】设计一个程序,拟在窗体上装入一个图片,在图片上画3个标签。窗体还有三个命令按钮,各控件的位置如图6.1所示。程序进入运行状态后如图6.2所示。当单击“显示文本1”命令按钮后,在图片上显示出一些文字,同时此命令按钮变成浅灰色,表示“失效”。若单击“显示文本2”命令按钮,则图片上换成另一段文字,此时“显示文本2”按钮失去作用,而“显示文本1”按钮恢复原状,可以使用。,图6.1,图6.2,属性设置如表6.1(见书112页)所示。根据题目要求,在程序运行后,若单击“显示
6、文本1”命令按钮,应显示出一些文字,并使该命令按钮失效。据此写出cmdShow1_Click事件过程(cmdShow1是命令按钮1的名字)。,Private Sub cmdShow1_Click()cmdShow1.Enabled=False cmdShow2.Enabled=True lbl1.Caption=欢迎你 lbl2.Caption=使用 lbl3.Caption=End Sub在执行cmdShow1_Click()事件过程后,“显示文本1”命令按钮已变成灰色(如图6.3所示)。编写出cmdShow2_Click事件过程如下:,图6.3,Private Sub cmdShow2_C
7、lick()cmdShow1.Enabled=True cmdShow2.Enabled=False lbl1.Caption=lbl2.Caption=lbl3.Caption=Visual BasicEnd Sub在单击“显示文本2”命令按钮后,屏幕显示如图6.4所示。,图6.4,上述的Enabled属性是使命令按钮“不可用”,在屏幕上改为浅灰色,但仍然看得见。有时希望在屏幕上使它变成“不可见”。Visual Basic提供的Visible(可见)属性就是用来控制命令按钮在屏幕上是否能被看得见。当Visible属性值为True(-1)时,命令按钮可以看得见;若为False(0),则命令按钮
8、被“隐藏”起来,在屏幕上不显示。应该说明,该命令按钮依然存在,其他各属性仍然起作用,只是在屏幕上不显示而已。,6.1.2 用Visible属性使命令按钮“不可见”,Visible属性的值既可以在设计阶段直接设置,也可以在运行时通过程序来改变。如果用户不指定该属性的值,Visual Basic自动将它的初始值定为True,即“可见”。有时需要清理屏幕时,只希望屏幕上显示用户所需要的信息而不希望显示某些控件时,可以用Visible属性。在例6.2中,读者将会看到Visible属性的使用。其实Enabled和Visible属性不仅可用于命令按钮,也可用于窗体。,默认的命令按钮,设置按钮的Defaul
9、t属性为True,直接使用Enter键即可选中设置按钮的Cancel属性为True,用Esc键选中,用Default属性使命令按钮为默认的“活动按钮”,用Cancel属性使命令按钮为“取消”按钮。许多用过Windows程序的读者会发现,有的对话框中有两个命令按钮,一个上面的文字为Ok(或“确定”),另一个为Cancel(或“取消”)。如果想选择Ok(或“确定”),既可以用鼠标单击该命令按钮,也可以在键盘上按Enter键,表示选中它。这个可以用Enter键代替的命令按钮就称为默认的“活动按钮”。,6.1.3 Default属性和Cancel属性,在Visual Basic中可以用Default属
10、性将一个命令按钮设置为默认的“活动按钮”。当一个命令按钮的Default属性值被设为True时,该按钮就被确定为默认的“活动按钮”,当为False时,不是默认的“活动按钮”,不能用Enter键代替单击该按钮来选择它。在一个窗体中,只能有一个命令按钮的Default属性值为True。,此外,人们还常常希望用按键盘上的Esc键来代替单击“取消”按钮,这符合人们的操作习惯。Visual Basic提供的Cancel属性可以用来指定一个命令按钮为“取消”按钮,在运行时可以用Esc键代替单击该命令按钮。当Cancel属性值为True时,该按钮被指定为“取消”按钮,当为False时,则不是“取消”按钮,在
11、运行中不能用Esc键代替单击该命令按钮。在一个窗体中,只能有一个命令按钮的Cancel属性值被设置为True。,【例6.2】设计一个程序,窗体中有2个命令按钮和3个标签,如图6.5所示。程序运行后若单击“确定(Ok)”按钮,则2个命令按钮和最上面一个标签成为不可见,同时在另外两个标签上显示出当前日期和时间,单击“取消(Esc)”命令按钮结束程序运行。属性设置见表6.2(见书116页)。,图6.5,根据题目要求,在单击“确定(Ok)”命令按钮时,应显示出当前日期和时间。编写出以下程序代码:Private Sub cmdOk_Click()cmdOk.Visible=False lblTitle.
12、Visible=False lblDate.Caption=日期:+Date$lblTime.Caption=时间:+Time$End Sub执行此事件过程后,用户看到的窗口如图6.6所示。,图6.6,命令按钮的一般形式是长方形、有文字说明。为使用户界面更加生动,可以使用带图案的命令按钮。具体做法如下:(1)添加一个按钮;(2)设置该按钮的Style 属性为1;(3)选择按钮的Picture 属性,单击右侧有“”的按钮,在“加载图片”对话框中选择一个图片文件,则将该图片放到命令按钮上。,有时,希望在应用程序的用户界面上,提供一些项目让用户从两种方案中选其一(如“是否要输出结果”,“是否使用大写
13、字母”,“是否选择这个文件”,等等)。Visual Basic提供一种称为“复选框”(Check box)的控件,又称“检查框”。它有两种状态可以选择:(1)选中(或称“打开”,复选框中出现一个“”标志);(2)不选(或称“关闭”,“”标志消失)。,6.2 复选框,【例6.3】设计一个程序,用户界面设计如图6.7所示,由一个标签、一个文本框、四个复选框组成。程序开始运行后,用户在文本框中输入一段文字,然后按需要单击各复选框,用以改变文本的字体、字形、颜色以及大小。属性设置见表6.3(见书119页)。,图6.7,先对第1个复选框(Name属性为chkFont)的单击事件编写单击事件过程:Priv
14、ate Sub chkFont_Click()If chkFont.Value=1 Then txtPassage.FontName=宋体 Else txtPassage.FontName=幼圆 End IfEnd Sub,与此类似,编写出第2个复选框(斜体)的如下事件过程:Private Sub chkItalic_Click()If chkItalic.Value=1 Then txtPassage.FontItalic=-1 Else txtPassage.FontItalic=0 End IfEnd Sub,接着编写第3个复选框的单击事件过程。Private Sub chkSize_C
15、lick()If chkSize.Value=1 Then txtPassage.FontSize=16 Else txtPassage.FontSize=8 End IfEnd Sub,最后编写第4个复选框的单击事件过程:Private Sub chkCol_Click()If chkCol.Value=1 Then txtPassage.ForeColor=QBColor(13)Else txtPassage.ForeColor=QBColor(0)End IfEnd Sub,在运行程序时,用户可以任意设定这四个复选框的状态,例如对4个框都选中,这时就使文本框的文字为宋体,字形为斜体,字的
16、大小为16点,颜色为紫色。可以选择其中几个,图6.8表示的是选中了宋体、大小为16点、颜色为紫色的运行结果。,图6.8,复选框的其他属性有下述两种。(1)Alignment属性:用来设置复选框在文字标题的左侧(0),还是右侧(1)。(2)Style属性:用来设置复选框的外观。这是Visual Basic 6.0中新增加的属性。Style=0,是标准复选框的外观,即在一个方框旁边显示提示信息。Style=1,其控件的外观类似于命令按钮。当单击该按钮时,按钮处于被按下、且尚未弹起的状态,再次单击,按钮外观恢复原状。例如,在窗体上添加一个复选框Check1,Caption属性值为“复选框按钮”,St
17、yle属性值为1,再为复选框的单击事件编写如下的事件过程:,Private Sub Check1_Click()If Check1.Value=1 ThenMsgBox 复选框1被按下 ElseMsgBox 复选框1被释放 End IfEnd Sub当单击”复选框按钮”时,表示该选项被选中,复选框的Value属性为1,出现一个提示框,如图6.9所示。再次单击“复选框按钮”,按钮弹起来,恢复原来的形状。,图6.9,有时,应用程序却要求在一组(几个)方案中只能选择其中之一,这就要用“单选按钮”控件。单选按钮也在工具箱中。如果有一组(多个)单选按钮,Visual Basic规定一次只能选择其中之一。
18、当选中某一单选按钮时,该框出现一个黑点(表示选中),同时其他单选按钮中的黑点消失,表示关闭(不选),这是单选按钮与复选框的主要区别,也是单选按钮名称的由来。,6.3 单选按钮,【例6.4】设计一个程序,用户界面由四个单选按钮、一个标签控件和一个命令按钮组成,程序开始运行后,用户单击某个单选按钮,就可将它对应的内容(星期、日期、月份或年份)显示在标签中,用户界面设计如图6.10所示。属性设置见表6.4(见书122页)。标签Label1设置成有单线的边框(BorderStyle属性的值为1),4个单选按钮的标题分别为“星期”、“日期”、“月份”、“年份”。如果用户单击“星期”单选按钮,则会触发以下
19、的事件过程:,图6.10,Private Sub optweek_Click()w$=WeekDay(Now)Label1.Caption=今天是星期+w$End Sub与此类似,如果单击“日期”单选按钮,则执行下面过程,在标签中显示“今天是xx号”的信息。Day是日期函数,Day(Now)的值是表示日期的数字字符串(如18、3等)。,Private Sub optDay_Click()d$=Day(Now)Label1.Caption=今天是+d$+号End Sub单击“月份”单选按钮,则执行下面的过程,其中Month是月份函数。Month(Now)的值是表示月份的数字字符串。Private
20、 Sub optMonth_Click()m$=Month(Now)Label1.Caption=这月是+m$+月份End Sub,单击“年份”单选按钮,则执行下面的过程,其中Year是年份函数。Private Sub OptYear_Click()y$=Year(Now)Label1.Caption=今年是+y$+年End Sub如想使程序停止运行,可单击“结束”命令按钮,执行下面的过程:Private Sub cmdEnd_Click()EndEnd Sub,一个单选按钮被选中时,其Value属性值被设置成True(-1),有一黑点出现在单选按钮中,表示它处于打开状态,再单击一次则黑点消失
21、,Value的属性值变为False(0),为关闭状态。程序运行结果如图6.11所示,此时选中“年份”,标签中显示出年份信息。,图6.11,此外,单选钮也可以有丰富的图形外观。,Style属性:用来指示控件的显示风格和行为。设计时缺省取值为0-Standard,即标准的,如果设置为1-Graphical,则支持图形外观,以下属性设置将生效。Picture属性:设置控件中要显示的图片,该属性可以在“属性窗口”中直接设置,也可以在程序中用LoadPicture函数加载。如果Caption属性有值,则按钮中同时显示图片和文字。DownPicture属性:设置控件被单击并处于压下状态时显示的图片。Dis
22、abledPicture属性:设置控件在无效时显示的图片,也就是控件的Enabled属性取值为False时控件的外观图片。,从上例中可以看到,在若干个单选按钮中只可以选择一个,但是有时有多组选项,希望在每组选项中各选一项,应该如何实现?可以设法将单选按钮分成几组,以每组作为一个单元,这就需要用到框架控件(Frame)。,6.4 框架,【例6.5】设计一个程序,用户界面上部有一个标签,下部有2个命令按钮,中间有3个框架和9个单选按钮。在每个框架中放3个单选按钮,即将9个单选按钮分为3组,一组用来改变字体,一组用来改变字体大小,一组用来改变字的颜色。用户界面设计如图6.12所示。程序运行后,单击“
23、显示”按钮,文本框中会显示一行文字,其字体、大小和颜色由程序事先设定。用户可以在3个框架中分别选择字体、大小和颜色,然后再单击“显示”按钮,此时文本框中的文字的字体、大小和颜色会发生变化。属性设置见表6.5(见书125页)。,图6.12,按照题目要求,程序应设置字体、字号大小和颜色的初始值。设字体为“宋体”,字号大小为“14点”,颜色为“蓝色”。这三个属性的初始值既可以在设计时通过属性表设置,也可以在Form_Load()事件过程中设置。今在Form_Load()事件过程中设置,其代码如下:Private Sub Form_Load()设置初始值 OptFont1.Value=True(设置字
24、体为宋体)Optsize1.Value=True(设置字体为14磅)OptColor1.Value=True(设置颜色为蓝色)显示文本,Label1.Caption=欢迎你使用Visual BasicEnd Sub运行这个程序,与例6.4不同的是,使用不同的动作触发事件过程。例6.4中,每次单击单选按钮,触发相应按钮的事件过程,改变属性值。在本例中,要求在单击“显示”命令按钮时,根据各单选按钮的状态,改变属性值。也就是说,单击单选按钮时,不立即改变标签中的文字的属性,改变属性的操作是由单击“显示”命令按钮触发的cmdShow_Click事件过程实现的。过程代码如下:,Private Sub c
25、mdShow_Click()确定字体 If OptFont1.Value Then Label1.FontName=宋体 If OptFont2.Value Then Label1.FontName=隶书 If OptFont3.Value Then Label1.FontName=幼圆 确定字号大小 If Optsize1.Value Then Label1.FontSize=14 If OptSize2.Value Then Label1.FontSize=18 If OptSize3.Value Then Label1.FontSize=22 确定颜色 If OptColor1.Valu
26、e Then Label1.ForeColor=QBColor(9)If OptColor2.Value Then Label1.ForeColor=QBColor(13),If OptColor3.Value Then Label1.ForeColor=QBColor(10)显示文本 Label1.Caption=欢迎你使用Visual BasicEnd Sub“退出”按钮的过程如下:Private Sub cmdExit_Click()EndEnd Sub程序运行结果如图6.13所示。,图6.13,控件数组是把多个控件作为一个整体来处理。控件数组中的每个元素都是相同类型的控件,比如Labe
27、l1(0)、Label1(1)、Label1(2)等,都是标签控件。控件数组中的对象具有相同的对象名,例如,Label1,不同的对象通过下标予以区别。控件数组中的对象共享相同的事件过程。下面通过例题说明控件数组的建立和使用方法。,6.5 控件数组,【例6.6】设计如图6.14所示的窗体,其中的单选按钮是控件数组。要求当单击某个单选按钮时,改变文本框中文字的字体。属性设置见表6.6(见书129页)。建立控件数组有下述两种方法。(1)第一种方法是,在设计时为相同类型的多个控件设置相同的Name属性。具体方法如下所述。在窗体上画出单选按钮1时,系统给出默认的Name属性的值为Option1。接着画单
28、选按钮2,系统给出默认的名字Option2。,图6.14,在属性表中将Option2的Name属性值改为Option1。然后用鼠标单击窗体(表示属性值设置结束),此时屏幕上会出现一个消息框,显示两行文字:“已经有一个控件为Option1。创建一个控件数组吗?”。单击“是(Y)”按钮,表示要建立一个名为Option1 的单选按钮控件数组。此时,可以看到单选按钮2的属性表中的Name属性是Option1,属性表上部的对象框中的对象名已由Option2变为Option1(1)了。如果单击属性表的对象框右端的下拉箭头,从其下拉表中可以看到原来的Option2已变成Option1(1)了,即Option
29、1控件数组中已有两个元素,即Option1(0)和Option1(1),如图6.15所示。,图6.15,按以上方法继续画Option1(2)。这时控件数组共有3个元素,即Option1(0)Option1(2)。当然也可以不用Option1作为数组名,而改用用户自己设定的名字。(2)第二种方法是,在设计时先在窗体上添加一个单选按钮控件,然后用鼠标右键单击该控件,在弹出的快捷菜单中选择“复制”命令,再用右键单击窗体,选择弹出菜单中的“粘贴”命令,当出现是否创建控件数组的提示时,选择“是”,则建立控件数组。,程序运行时,先使标签的FontSize的属性值为12,Caption属性为“Microso
30、ft Visual Basic”,并设第一种字体被选中,即Option1(0).Value=True。这里的Option1(0).Value是按数组的方式引用控件。程序如下:Private Sub Form_Load()lblTitle.FontSize=12 lblTitle.Caption=Microsoft Visual Basic Option1(0).Value=TrueEnd Sub,设计程序时,要特别注意控件数组是一个整体,具有相同的名称Option1。在这个例题中,Option1控件数组的各个数组元素响应同一个Click事件。只要单击任何一个单选按钮(即Option1控件数组中
31、的任一个元素),就会触发Option1_Click 事件。Option1_Click事件过程如下:Private Sub Option1_Click(Index As Integer)If Index=0 Then lblTitle.FontName=Arial If Index=1 Then lblTitle.FontName=System If Index=2 Then lblTitle.FontName=ModernEnd Sub,6-1 命令按钮的Name 属性和Caption属性有何不同?6-2 为什么要用框架将若干单选按钮组合到一起?6-3 单选按钮和复选框在使用上有什么区别?6-4 控件数组与普通数组在使用上有什么区别?控件数组与控件在使用上有什么区别?,习题,实验:6-6 设窗体中包含一组单选按钮、一组复选框。单选按钮包括普通、粗体、斜体和粗斜体4种字形。复选框提供对删除线和下划线的修饰效果的选项。在文本框中输入文字后,单击某个按钮,文本框中的文字将按所选择的选项进行设置。窗体如图6.18所示。分别用控件数组和普通控件的方式编写程序,实现题目的要求。,6-7 按照图6.19设计窗体。当单击“显示”命令按钮时,根据文本框中输入的内容、单选按钮和复选框状态在标签中显示相应的信息。要求按回车键时,执行“显示”按钮的事件过程,按Esc键时,执行“退出”按钮的事件过程。,