Version 3.0
菜单和对话框第 七章
2
回顾
使用过程和函数
说明程序中过程和函数的作用范围
使用参数和在函数及过程中传递参数的规则
使用 Visual Basic 支持的内部函数
使用 SUB MAIN 过程
3
本章目标
设计菜单和编写菜单代码
设计和使用窗口中的弹出菜单
解释和使用系统对话框输入数据
解释和使用对话框控件
设计和使用自定义对话框
4
菜单 的必要性
应用程序可以执行多种任务
为了使用户可以高效地使用应用程序,它必须具备下列功能:
– 通知用户可用的任务
– 向用户提供指定所要执行的任务的方法
菜单提供了一种便捷统一的方法,将不同的命令分组排列,使用户可以方便地访问
5
菜单 示例标题栏主菜单选项菜单栏子菜单选项
6
菜单 的元素
菜单栏显示在窗体标题栏的正下方,包含一个或多个菜单选项
每个菜单选项下可能会显示一个或多个选项
菜单栏上的选项是主菜单选项
位于主菜单选项下方的选项称为子选项
显示在菜单栏上的菜单选项都分别表明了它们所提供的操作的种类
– 常见的种类文件,编辑,视图,窗口,帮助等
7
菜单编辑器菜单控件属性菜单控件列表框
8
菜单编辑器选项 2- 1
标题
名称
快捷键
复选
有效
显示窗口列表
( 此处请实际操作 )
9
菜单编辑器选项 2-2
右箭头
左箭头
上箭头
下箭头
菜单列表
下一个
插入
删除
( 此处请实际操作 )
10
编写菜单事件代码
与菜单项相关联的 Click 事件用于定义在选择该菜单项时必定会触发的操作
通常,Click 事件用于根据选定的菜单选项加载或卸载应用程序中的窗体
也可以使用 Click 事件启用或禁用特定的菜单选项
11
Click 事件示例 2-1
Private Sub mnuNew_Click()
Load frmnew
End Sub
Click事件通常用于根据选定的菜单选项加载或卸载应用程序中的窗体
12
Click 事件示例 2-2
使用 Click事件启用或禁用特定的菜单选项
Private Sub mnuNew_Click()
mnuOpen.Enabled = False
mnuSave.Enabled = True
mnuPrint.Enabled = True
mnuClose.Enabled = True
mnuExit.Enabled = False
End Sub
13
菜单项的属性
Visible
– 指定在运行时用户是否可以看到该菜单项
Enabled
– 指定用户在运行时是否可以使用该菜单项
Checked
– 决定是否在菜单项的旁边显示复选标记
Index
– 可以创建一个菜单项数组
14
弹出菜单
可以使用快捷菜单或弹出菜单来访问常用的命令
弹出菜单是用户单击鼠标右键时,在光标位置显示的菜单
弹出菜单是一种普通菜单,
它的不同之处在于它不会固定到窗体
15
激活弹出菜单的示例
Private Sub Form_MouseDown(Button As Integer,Shift
As Integer,X As Single,Y As Single)
If Button = vbRightButton Then
PopupMenu mnuEdit
End If
End Sub
创建弹出菜单需要两个步骤:
1.使用菜单编辑器创建菜单
2.使用 PopupMenu 方法激活菜单
16
动态菜单
动态菜单是可以在运行时更改的菜单
使用动态菜单可以在运行时添加或删除特定的菜单命令
创建动态菜单
– 需要先创建一个菜单项控件数组
– 将菜单选项添加到编辑器时,将菜单项的,索引,属性设置为 0
– 此后,所有要添加到控件数组的菜单项都必须具有相同的名称和不同的索引值
( 演示如何设置空间数组 )
17
加载和卸载菜单项
Load 命令用于将项加载到数组
– Load 命令必须与控件数组名称和要添加的元素的索引一起使用
Unload 命令用于删除数组的元素
– 要使用此命令,同样需要指定控件数组名称和要删除的元素的索引
18
Visual Basic 中的对话框
对话框是包含控件的临时窗口
用于向用户显示信息和消息
接受用户信息的方法
19
对话框的特征
对话框通常没有菜单
不能调整对话框的大小
对话框很少用作应用程序的主界面
对话框主要用于显示信息或在执行某个特定操作时获取用户输入
20
对话框类型
通用对话框
– 通用对话框是系统预定义的对话框,它用于规范用户执行许多应用程序中常见的复杂操作的方法
– 通用对话框的示例有“颜色”、“打开”、
“另存为”和“打印”对话框
自定义对话框
– 为了满足应用程序的需求而由程序员设计的对话框
21
演示
演示常见的通用对话框
22
系统定义的 InputBox()
输入框是由系统定义的对话框,包含一个信息提示、一个文本框以及两个命令按钮“确定”和“取消”
对话框等待用户输入文本或单击按钮,然后返回文本框的内容
输入框在应用程序要求用户提供一个输入时,
非常有用
23
在程序中使用 InputBox( )
Dim num as integer
num=inputbox(“请输入定购数量”,”定购状态” )
24
通用对话框控件
Visual Basic 提供的通用对话框适用于下列操作:
– 打开一个文件
– 保存一个文件
– 打印
– 设置字体
– 设置颜色
– 显示帮助
25
添加通用对话框控件
26
自定义对话框
自定义对话框是由用户根据需求自定义的对话框
控制用户登录应用程序的登录屏幕就是这类对话框的一个很好的示例
27
对话框类型
根据其行为特点,对话框可分为:
– 模式
– 无模式
28
模式对话框
有模式对话框在显示时,不允许用户执行任何操作
例如,如果对话框要求用户在切换到其他窗体或对话框前单击,确定,或,取消,,则此对话框为有模式对话框
– Visual Basic 中的,关于,对话框是有模式对话框
显示重要消息的对话框总应当是模式的
29
无模式对话框
无模式对话框允许用户在不关闭该对话框的情况下,在对话框和其他窗体间切换
允许用户在显示对话框时,在当前应用程序中继续进行其他工作
,查找,对话框就是一个无模式对话框的示例
30
总结
菜单
– 使用菜单设计器设计菜单
– 菜单的事件编码:菜单的属性和事件
– 设计和使用弹出式菜单
– 动态菜单的设计和实现
对话框
– 系统定义的输入输出对话框,INPUTBOX、
MSFBOX。。。
– 使用公用对话框控件,SHOWOPEN、
FILENAME。。。
– 模式对话框和非模式对话框的概念和编码实现
– 设计和实现自定义类型的对话框