9.1 菜单 执行菜单编辑器的方法有: ⑴从“工具”菜单上,选取“菜单编辑器”。 ⑵在“工具栏”上单击“菜单编辑器”按钮。 1、设计下拉菜单 2、设计子菜单 3、给菜单项分组 一个以连字符(-)作为标题属性的菜单控件,将以一个分隔条出现。分隔条可把菜单项划分成若干个逻辑组。 注意:如果菜单控件是一个菜单标题、带有子菜单项、被复选或无效,或者有一个快捷键,那么它就不能作为分隔条。分隔条不能被选取和单击。 4、给菜单项指定访问键和快捷键 “访问键”是指与Alt键同时按下的键,用于打开菜单、执行命令、选择对象或移向对象。在菜单项的标题中,在想要指定为访问键的字符前加一个&符号。在菜单中,该字符会自动加上一条下划线。 5、菜单标题和名称的命名基本约定 为了增强菜单项目的可操作性、程序代码的可读性和易维护性,可以确定菜单创建时其标题和名称的命名约定。 (1)标题的命名约定 为菜单项进行标题赋值时,应当尽量遵循下列准则: ① 菜单中菜单控件标题应当惟一,但不同菜单中相似动作菜单控件可以重名。 ② 菜单控件标题可以是单词、复合词或者多个词。 ③ 每一个菜单控件标题都应当有一个用键盘选取命令的、一个惟一的记忆访问字符。访问字符原则上应当是菜单控件标题的第一个字母,除非别的字符更易记;两个菜单控件标题不能用同一个访问字符。 ④ 如果命令在完成之前还需要附加信息,则在其标题后面应当有一个省略号(…),比如显示一个对话框的命令(“另存为…”,“首选项…”)。 ⑤ 菜单控件标题应尽量简短。 (2)名称的命名约定 菜单控件命名约定规则建议用前缀来标识对象(即,对菜单控件用mnu),其后紧跟顶层菜单的名称(如File)。对于子菜单,其后再紧跟该子菜单的标题(如mnuFileOpen)。 6、使菜单命令有效或无效 所有的菜单控件都具有Enabled属性,当这个属性设为False时,菜单命令无效使它不响应动作。或者选择“菜单编辑器”中的“有效”框使菜单命令有效或无效。 7、显示菜单控件上的复选标志 使用菜单控件的Checked属性,或者使用菜单编辑器中“复选”框,可以把一个复选标志置于菜单上,表示该菜单项的打开/关闭条件的状态。 1、有效性控制 【例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 运行修改后的程序,程序启动后,打开“文件”菜单,可见“关闭”菜单项无效,单击“新建”菜单项,则“关闭”有效,而“新建”菜单项变为无效。 2、菜单项标记 【例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 3、菜单项的隐藏与显示 【例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所示。 4、键盘选择 (1) 访问键 在菜单编辑器中给菜单控件设置访问键的步骤: ① 选取要设置访问键菜单项。 ② 在其“标题”文本框中,直接输入“&+访问键字符”,这样,“&”符号后的第一个字符将成为访问键。 注意:菜单中不能使用重复的访问键,如果多个菜单项使用同一个访问键,则该键将不起作用。 (2) 快捷键 菜单项快捷键的设置步骤如下: ① 打开“菜单编辑器”。 ② 选取菜单项。 ③ 在“快捷键”组合框中选择功能键或者键的组合。 要删除快捷键,应选取列表框顶部的None。 注意:快捷键将自动出现在菜单上,不需要在菜单编辑器的“标题”框中键入Ctrl+Key。通常对于菜单中最低级的菜单项控件,一般需要设定访问键和快捷键方式,使之能够进行简便操作。 9.2 对话框 1、要将窗体作为模式对话框显示,请使用Show方法,其style参数值为vbModal(一个值为1的常数)。例如: '将窗体frmAbout作为模式对话框显示。 frmAbout.Show vbModal 2、要将窗体作为无模式对话框显示,请使用不带style参数的Show方法。例如: '将窗体frmAbout作为无模式对话框显示。 frmAbout.Show 3、注意: 如果窗体显示为模式对话框,则只有当对话框关闭之后,在Show方法后面的代码才能执行。当窗体被显示为无模式对话框时,在该窗体显示出来以后,Show方法后面的代码紧接着就会执行。 1、用输入框来提示输入 2、用消息对话框显示信息 1、自定义对话框的创建 创建自定义对话框的方法有: (1) 从普通窗体创建; (2) 使用对话框模板; (3) 如果重复过多,可以建造能在多个应用程序中使用的对话框的集合。 2、自定义对话框的显示和关闭 自定义对话框的显示方法与模式或无模式对话框的显示方法是一致的。 自定义对话框的关闭可以使用Hide方法或Unload语句来实现,其格式为 Me.Hide 或 <窗体名>.Hide Unload<窗体名>. 1、“打开”/“另存为”对话框 2、“颜色”对话框 3、“字体”对话框 4、“打印”对话框 5、“帮助”对话框 小结: Visual Basic的应用程序一般给用户提供三种菜单:窗体控制菜单、下拉菜单与快捷菜单。窗体控制菜单由窗体的ControlBox属性控制,下拉菜单和快捷菜单则可以由菜单控件(Menu)方便地设计出来。为了创建Menu控件,要使用“菜单编辑器”。 对话框主要可以分为三类:系统预定义对话框、用户自定义对话框和通用对话框。根据对话框是否要求用户必须作出响应,可以分为模式对话框和无模式对话框。 作业: 1、简述在VB中设计下拉菜单和快捷菜单的方法。 2、模式对话框和无模式对话框有何区别? 3、自定义对话框的设计步骤有哪些? 4、请说明通用对话框中各种对话框的使用方式。
5、请简单总结对话框的类型及其基本作用。
|
|