资源预览内容
第1页 / 共83页
第2页 / 共83页
第3页 / 共83页
第4页 / 共83页
第5页 / 共83页
第6页 / 共83页
第7页 / 共83页
第8页 / 共83页
第9页 / 共83页
第10页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第十三讲 菜单和对话框,第十三讲 2课时,教学目标及基本要求,掌握使用菜单编辑器在应用程序中创建下拉菜单和快捷菜单 了解对话框的分类及作用 掌握系统预定义对话框、用户自定义对话框和通用对话框的设计,教学重点,用菜单编辑器建立菜单 菜单项的控制 菜单项的增减 系统预定义对话框 用户自定义对话框 通用对话框,教学难点,菜单项的控制,教学内容,用菜单编辑器建立菜单 菜单有效性控制、菜单项标记、菜单项的隐藏与显示、键盘选择 菜单项的增减 弹出式菜单 系统预定义对话框 用户自定义对话框 通用对话框和文件对话框,菜单,菜单概述 Visual Basic的应用程序一般给用户提供三种菜单:窗体控制菜单、下拉菜单与快捷菜单。窗体控制菜单由窗体的ControlBox属性控制,下拉菜单和快捷菜单则可以由菜单控件(Menu)方便地设计出来。为了创建Menu控件,要使用“菜单编辑器”。 用菜单编辑器建立菜单 执行菜单编辑器的方法有:从“工具”菜单上,选取“菜单编辑器”;在“工具栏”上单击“菜单编辑器”按钮。,用菜单编辑器建立菜单 菜单编辑器对话框中的选项有如下几个。 标题菜单名或命令名。 名称菜单控件的标识符。 索引菜单控件数组的下标,为一整型数。 快捷键为每个命令设定的快捷方式。 帮助上下文ID允许为context ID指定惟一数值,用于查找帮助主题。,菜单,菜单,协调位置决定是否及如何在容器窗口中显示菜单。该列表有四个选项,作用如下: 0-None 菜单项不显示 1-Left 菜单项靠左显示 2-Middle 菜单项居中显示 3-Right 菜单项靠右显示 复选允许在菜单项的左边设置复选标记。 有效决定是否让菜单项对事件作出响应。 可见将菜单项显示在菜单上。,菜单,显示窗口列表在MDI应用程序中,确定菜单控件是否包含一个打开的MDI子窗口列表。 右箭头使选定的菜单下移一个等级。 左箭头使选定的菜单上移一个等级。 上箭头、下箭头使选定的菜单项在同级菜单中上下改变位置。 菜单列表框列出当前窗体的所有菜单控件。 下一个将选定移动到下一行。 插入在当前选定行上方插入一行。 删除删除当前选定行。,菜单,用菜单编辑器建立菜单 设计下拉菜单 图9-2列出了一个应用程序中“文件”菜单的相关菜单控件。通过左右键可以设置菜单控件是菜单标题、菜单项、子菜单标题还是子菜单项,位于列表框中左侧平齐的菜单控件作为菜单标题显示在菜单栏中。图9-1执行后的下拉菜单如图9-2所示,列表框中被缩进过的菜单控件,在单击其前导的菜单标题后才会在该菜单上显示。,菜单,用菜单编辑器建立菜单 设计子菜单 一个缩进过的菜单控件,如果后面还紧跟着再次缩进的一些菜单控件,它就成为一个子菜单的标题。在子菜单标题以下缩进的各个菜单控件,就成为该子菜单的菜单项。如图9-3所示,“颜色”为一个子菜单标题,“前景色”和“背景色”为该子菜单的菜单项。,图9-3 子菜单,图9-2 下拉菜单,菜单,用菜单编辑器建立菜单 给菜单项分组 一个以连字符(-)作为标题属性的菜单控件,将以一个分隔条出现。分隔条可把菜单项划分成若干个逻辑组。如图9-2中“保存”菜单项的上下分隔条。 注意:如果菜单控件是一个菜单标题、带有子菜单项、被复选或无效,或者有一个快捷键,那么它就不能作为分隔条。分隔条不能被选取和单击。,菜单,菜单,用菜单编辑器建立菜单 给菜单项指定访问键和快捷键 “访问键”是指与Alt键同时按下的键,用于打开菜单、执行命令、选择对象或移向对象。在菜单项的标题中,在想要指定为访问键的字符前加一个&符号。在菜单中,该字符会自动加上一条下划线。 按下“快捷键”时会立刻运行一个菜单项。为频繁使用的菜单项指定一个快捷键,可以提高工作效率。快捷键的赋值通过编辑器的快捷键选项完成。快捷键出现在菜单中相应菜单项的右边。,用菜单编辑器建立菜单 菜单标题和名称的命名基本约定 标题的命名约定 为菜单项进行标题赋值时,应当尽量遵循下列准则: 菜单中菜单控件标题应当惟一,但不同菜单中相似动作菜单控件可以重名。 菜单控件标题可以是单词、复合词或者多个词。,菜单,菜单, 每一个菜单控件标题都应当有一个用键盘选取命令的、一个惟一的记忆访问字符。访问字符原则上应当是菜单控件标题的第一个字母,除非别的字符更易记;两个菜单控件标题不能用同一个访问字符。 如果命令在完成之前还需要附加信息,则在其标题后面应当有一个省略号(),比如显示一个对话框的命令(“另存为”,“首选项”)。 菜单控件标题应尽量简短。,菜单,名称的命名约定 菜单控件命名约定规则建议用前缀来标识对象(即,对菜单控件用mnu),其后紧跟顶层菜单的名称(如File)。对于子菜单,其后再紧跟该子菜单的标题(如mnuFileOpen)。,菜单,用菜单编辑器建立菜单 使菜单命令有效或无效 所有的菜单控件都具有Enabled属性,当这个属性设为False时,菜单命令无效使它不响应动作。或者选择“菜单编辑器”中的“有效”框使菜单命令有效或无效。 显示菜单控件上的复选标志 使用菜单控件的Checked属性,或者使用菜单编辑器中“复选”框,可以把一个复选标志置于菜单上,表示该菜单项的打开/关闭条件的状态。如图9-3所示。,菜单,菜单项的控制 有效性的控制 【例9.1】图9-4所示菜单中有“新建”和“关闭”菜单项。设计程序使在未新建文档时,“关闭”项无效,“新建”菜单项有效。在新建文档后,“关闭”项有效,而“新建”菜单项变为无效。 单击“属性”窗口上方的对象列表框,从中选择菜单控件MenClose属性列表中将Enabled属性的值设置为False。打开“代码”窗口,将“新建”与“关闭”菜单项的Click修改如下:,菜单,Private Sub MenClose_Click() Text1.Visible = False MenNew.Enabled = True MenClose.Enabled = False End Sub Private Sub MenNew_Click() Text1.Text = “ Text1.Visible = True MenNew.Enabled = False MenClose.Enabled = True End Sub,菜单,运行修改后的程序,程序启动后,打开“文件”菜单,可见“关闭”菜单项无效,如图9-4所示。 单击“新建”菜单项,则“关闭”有效,而“新建”菜单项变为无效,如图9-5所示。,图9-4 菜单项有效性控制,图9-5 菜单项无效性控制,菜单,菜单项的控制 菜单项标记 有些菜单项表示的是一种开关状态,这些命令其实就是在两种不同的状态之间切换。这些菜单项就像一个开关,当处于“开”状态时,菜单项上显示一个“”标记,当处于“关”状态时,不显示任何标记。 还有一种情况常常使用到菜单项标记。当菜单栏中有多个并列的选项时,菜单项标记用来表明用户所选的是哪一个选项。例如,在VB的“窗口”菜单中,显示有“”标记的窗口为当前活动的窗口。图9-6 菜单项标记 菜单控件的Checked属性用来决定是否在菜单项上显示“”标记。该属性的默认值为False,即不显示“”标记。如果设置它的值为True,则显示“”标记。“菜单编辑器”对话框中的“复选”选项对应的是Checked属性,选中该选项与在“属性”窗口中设置Checked属性的值为True的效果是一样的。,菜单,【例9.2】为一个菜单项标记实例。如图9-6所示,通过程序控制,使用户在单击“粗体”选项后,该选项的左边出现一个“”标记,表明当前文本以粗体显示。再次单击“粗体”选项,则“”标记消失,且文本恢复以标准显示。在“字号”子菜单中,用户所选的字号前也会出现一个“”标记。 打开“代码”窗口,修改MenFont_Click与MenSize_Click事件过程如下:,菜单,Private Sub MenFont_Click() If MenFont.Checked = False Then Text1.FontBold = True MenFont.Checked = True Else Text1.FontBold = False MenFont.Checked = False End If End Sub,菜单,Private Sub MenSize_Click(Index As Integer) Select Case Index Case 0 Text1.FontSize = 14 MenSize(0).Checked = True MenSize(1).Checked = False MenSize(2).Checked = False Case 1 Text1.FontSize = 18 MenSize(1).Checked = True MenSize(0).Checked = False MenSize(2).Checked = False,菜单,Case 2 Text1.FontSize = 20 MenSize(2).Checked = True MenSize(0).Checked = False MenSize(1).Checked = False End Select End Sub,菜单,在MenFont_Click事件过程中,使用了If语句来判断菜单项当前的值。如其值为False,则将文本变为粗体,并设置其值为True;如果其值为True,则文本为粗体效果,并设置其值为False。在MenSize_Click事件过程中,响应C1ick事件后都将执行三步操作:首先设置文本的字号;其次将Checked属性的值设置为True,即在菜单项上显示“”标记;最后是将控件的Checked属性的值设置为False,即取消其他菜单项上的“”标记。 运行程序,执行“文件”菜单中的“新建”命令,向框中输入一段文本,执行“编辑”菜单中的“粗体”命令,则应该出现一个“”标记,同时,文本字体变为粗体。再次单击“粗体”,则“”标记消失,文本恢复标准显示。单击“字号”子菜单中的选项,则该选项的左边出现了一个“”标记,并且文本字号变为三号,如图9-6所示。,菜单,图9-6 菜单项标记,菜单,菜单项的控制 菜单项的隐藏与显示 在一些应用程序中,有些菜单项是隐藏的,只有当满足一定条件时,这些菜单项才会显示出来。菜单控件的Visible属性用来决定菜单项是否显示。该属性的默认值为True,即菜单项总是显示出来的。如果设置它的值为False,则菜单项将不显示出来。 【例9.3】设计程序使得只有在字体为粗体时,“字号”子菜单才显示出来。如图9-7所示,单击“属性”窗口上方的对象列表框,从中选择菜单控件MenSize1,在属性列表中将Visible属性的值设置为False。打开“代码”窗口,修改MenFont_Click事件过程如下:,菜单,Private Sub MenFont_Click() If MenFont.Checked = False Then Text1.FontBold = True MenFont.Checked = True MenSize1.Visible = True Else Text1.FontBold = False MenFont.Checked = False MenSize1.Visible = False End If End Sub 运行修改后的程序,单击“编辑”菜单,可见图9-7在下拉菜单中没有出现子菜单。单击“粗体”选项,则“字号”子菜单又出现,如图9-8所示。,菜单,图9-7 下拉菜单中没有出现子菜单,图9-8 下拉菜单中出现子菜单,菜单,菜单项的控制 键盘选择 (1) 访问键 访问键允许用Alt键+指定字符来打开一个菜单。一旦菜单打开,通过访问键可选取菜单控件。例如,在图9-2中,按下Alt+F键可打开“文件”菜单,再按N键选取“新建”菜单项。在菜单控件的标
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号