学习目标
本章介绍了菜单编辑器、通用对话框的使用和多重窗体、多文档界面(MDI)、工具栏、状态栏等界面窗体的设计方法。学习时,注意从界面的设计和对象编写代码两个方面去理解掌握。通过一个综合性的实训项目,学会应用程序界面的灵活设计。
实训项目
1、项目题目:设计一个MDI记事本程序
2、项目要求:MDI记事本程序中,包含一个父窗体(frmMDI)、一个子窗体(frmNotePad)、一个模式对话框窗体(frmFind)和一个模块(Module1),如图6-1工程资源管理器窗口所示。程序运行后,应用程序可创建多个子窗体,并同时显示在MDI窗体中。在每个文档中都可进行信息的编辑和修改,当使用“搜索”菜单中的“查找”命令时,弹出“查找”对话框,如图6-2所示。所有文档都限定在MDI窗体区域内,而“查找”窗体可在桌面上任意移动,也即“查找”窗体是一个普通窗体。

图6-1 “工程资源管理器”窗口 图6-2 MDI记事本同时打开多个文档
父窗体(frmMDI)的设计界面包含如图6-3所示的菜单项及一个通用对话框控件。

图6-3 frmMDI运行界面
子窗体(frmNotePad)用于进行字处理,其设计界面及各菜单项命令如图6-4所示。

图6-4(a) frmNotePad窗体设计界面

图6-4(b) frmNotePad窗体各菜单项设计
模式对话框窗体(frmFind)的设计界面如图6-5所示。

图6-5 frmFind窗体设计界面
在模块(Module1)中,可设计通用过程。
在窗口环境下,绝大多数应用程序使用菜单界面进行各种操作。菜单提供了人机对话界面,方便使用者选择应用系统的各种功能。另外,通过菜单可以管理应用系统,控制应用程序各种功能模块的运行。
在实际应用中,菜单可分为两种基本类型:下拉式菜单和弹出式菜单。
在下拉式菜单系统中,一般有一个主菜单,称为菜单栏。其中包括一个或多个选择项,称为菜单标题。当单击一个菜单标题时,包含菜单项的列表(菜单)即被打开。菜单由若干个命令、分隔条、子菜单标题(其右边含有三角的菜单项)等菜单项组成。当选择子菜单标题时又会“下拉”出下一级菜单项列表,称为子菜单。
Visual Basic提供的“菜单编辑器”是一种用来建立菜单栏的工具。利用它可以非常方便、快捷地在应用程序的窗体上建立菜单。选择“工具”菜单中的“菜单管理器”命令或单击标准工具栏中的“菜单编辑器”按纽打开“菜单编辑器”对话框,如图6-6所示。
数据区 编辑区 菜单项显示区

菜单编辑器窗口分为三个部分,即数据区、编辑区和菜单项显示区。
1.数据区
数据区为窗口标题栏下面的五行,用来输入或修改菜单项,设置属性。
(1)标题(Caption)文本框
用于设置菜单项的标题,这些名字出现在菜单条或菜单之中。
如果想在菜单中建立分隔符,则应在标题框中键入一个连字符“-”。
为了能够通过键盘访问菜单项,可在输入的菜单标题的某个字母前插入一个 & 符号,那么该字母就成了热键字母。在运行时,该字母带有下划线,按【ALT】键和该字母就可访问菜单命令。
(2)名称(Name)文本框
用于设置菜单项的名称。在程序中用来标识该菜单项,分隔符也要有相应的名称。
(3)索引(Index)
设置菜单控件数组的下标,相当于控件数组的索引属性。
(4)快捷键(Shortcut)下拉列表框
在此列有表框列出了很多快捷键,供用户为菜单项选定一个快捷键。在程序运行时,用户按快捷键同样可以运行一个菜单项。
(5)帮助上下文 ID(HelpContextID)文本框
用于指定帮助文件的ID值。在 HelpFile 属性指定的帮助文件中用该数值查找适当的帮助主题。
(6)协调位置(NegotiatePosition)下拉列表框
该属性决定是否及如何在容器窗体中显示菜单。
(7)复选(Checked)框
允许在菜单项的左边设置复选标记。通常用它来指出切换选项的开关状态。
(8)有效(Enabled)复选框
用来设置菜单项的操作状态,当该属性设置为False时,相应的菜单项呈灰色,表明不会响应用户事件。
(9)可见(Visible)复选框
用于设置该菜单项是否可见。
(10)显示窗口列表(WindowList)
在 MDI 应用程序中,确定菜单控件是否包含一个打开的 MDI 子窗体列表。
2.编辑区
编辑区由 七个按钮组成,用于编辑输入的菜单项。
(1)?和?按钮
用于调整菜单项的级别,一共可以创建四个子菜单等级。单击左箭头将把选定的菜单项向上移一个等级,单击右箭头将把选定的菜单项向下移一个等级。
(2)?和¤按钮
用于调整菜单项的位置。单击上箭头将把选定的菜单项在同级菜单内向上移动一个位置,单击下箭头把选定的菜单项在同级菜单内向下移动一个位置。
(3)下一个(Next)按钮
当用户设置完一个菜单项的各个属性后,选择此按钮,即可进入下一个菜单项的设置。
(4)插入(Insert)按钮
在选定的菜单项前插入一个菜单项。
(5)删除(Delete)按钮
删除当前菜单项。
3.菜单项显示区
用来显示输入的菜单项。根据显示的各菜单项前面的内缩符号(….)可确定菜单的层次。
Visual Basic中,每一个菜单项都是一个控件,菜单控件(菜单项)没有任何方法,只有一个鼠标单击事件,即Click事件。要让一个菜单控件实现某个功能,就要编辑它的Click事件。
例6-1 菜单设计。建立如图6-7所示的菜单,希望它能做加、减、乘、除以及清除工作。菜单中的每一个命令都有快捷键(Shortcut),例如“加法”命令的快捷键为【Ctrl+A】。窗体的第一个菜单“计算1”有“加法”和“减法”两个命令;第二个菜单“计算2”有 “乘法”、“除法”和“清除”三个命令。“操作数1”和“操作数2”下面的两个文本框用来输入两个操作数,“计算结果”下面的标签用来显示两个操作数的计算结果。


图6-7 例6-1菜单设计界面及运行结果
操作步骤如下: