第8章菜单与对话框
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1 菜单概述
Windows环境下几乎所有的应用软件都通 过菜单实现各种操作,而对visual basic应用程 序来说,当操作比较简单的时候,一般通过控件 来执行,当要完成比较复杂的操作时,使用菜单 具有十分明显的优势。 菜单的类型: 控制菜单;下拉式菜单;快捷菜单(弹出式菜单) 菜单的作用: 1.提供人机对话的界面,以便让使用者选择应用 系统的各种功能, 2.管理应用系统,控制各种功能模块的运行。
菜
单
项
显
示
区
5
下拉式菜单
1.属性设置区:
(1)“标题caption”: (2)“名称name”:唯一标识该菜单 (3)“索引index”:菜单控件数组的索引号 (4)“快捷键shortcut”:缺省是none
(5)“复选checked”:菜单项前显示复选标志 √
(6)“有效enabled”:缺省为true (7)“可见visible”: 缺省为true (8)“帮助上下文”: 帮助文件中查找相应的帮助主题 (9)“协调位置”: 标题位置
3
下拉式菜单
菜单显示在窗体中,因此菜单的设置也和其他控件一样在 窗体内进行。VB为用户提供了菜单编辑器。打开菜单编辑 器的方法有如下几种: 1.在VB中单击“工具”菜单中的“菜单编辑器”子菜单; 2.利用“Ctrl”+“E”键的组合; 3.在需要建立菜单的窗体上右击,在弹出的菜单中选择 “菜单编辑器”命令; 4.单击工具栏中的“菜单编辑器” 快捷按钮。 用上述任一方法打开的“菜单编辑器”的对话框,如图所 示。
MsgBox "密码错误,重新输入" End If End Sub
x = Val(Text1.Text) + Val(Text2.Text) Text3.Text = Str(x)
End Sub
Private Sub sub_Click() '减法。 x = Val(Text1.Text) - Val(Text2.Text)
Text3.Text = Str(x)
17
22
弹出式菜单设计
4.参照步骤3完成“复制”和“粘贴”菜单的设置。 5.在VB中,需要使用PopupMenu方法来显示弹出 式菜单。其语法格式如下: [对象].PopupMenu 菜单名,标志,X,Y 其中对象为可选项,默认为Form对象;菜单名是必 须的,被指定的菜单必须至少包含一个子菜单;标 志参数及X、Y的值的作用是详细定义弹出式菜单的 弹出位置,当标志等于0时,为系统的默认状态,X 放映的是弹出菜单的左边界,当标志等于4时,X放 映的是弹出菜单的中心位置,当标志等于8时,X放 映的是弹出菜单的右边界。
(4)“插入”
在当前菜单项的前面插入一个空白菜单项。
(5)“删除”
删除当前菜单项。
7
下拉式菜单
3.菜单项显示区
该区域用于显示输入的菜单项,编辑好的菜单项可通过内缩 符号表明其层次,如图所示:编辑为主菜单,其下有4个子菜 单,而字体子菜单下还有3个二级菜单。
8
下拉式菜单
例:设计一个包含菜单的窗体,其中主菜单为文件和编辑菜 单,文件菜单包含新建、打开、保存、退出四个下拉菜单, 编辑菜单包含剪切、复制、粘贴和字体四个下拉菜单,字 体菜单又包含黑体、宋体、楷书三个下拉菜单。具体设计 完毕后效果如图12-4所示。
无 无 无
10
下拉式菜单
2.编写代码
菜单设置好后,需要给每个需要完成某些功能的菜单项编 写对应的代码。给例的窗体内添加一个文本框Text1,Text1 的属性如表所示。
对象名 Text
属性 Name Text MultiLine ScrollBar
属性值 Text1 清空 True 3-both
11
属性设置 Borderstyle:窗体的边框样式————设置为3 controlbox:显示控制菜单框
28
自定义对话框
代码设计 Private Sub Command1_Click()
Form2.Show Form1.Hide End Sub Private Sub Command1_Click() If Text1.Text = "password" Then Else
25
Flag参数的取值及含义
系统常量
值
说明
vbpopupmenuleftalign
0 缺省值,指定x的位置作为弹出式菜单的 左上角
vbpopupmenucenteralign 4 指定x的位置作为弹出式菜单的中心点
Vbpopupmenurightalign 8 指定x的位置作为弹出式菜单的右上角
Vbpopupmenuleftbutton 0
下拉式菜单
名称 js1 add Sub Js2 Mul Div Other Clear Exit
上级菜单 无
计算1 计算1
无 计算2 计算2
无 其他 其他
快捷键 无
Ctrl+A Ctrl+B
无 Ctrl+C Ctrl+D
无 Ctrl+E Ctrl+F
15
பைடு நூலகம்
下拉式菜单
16
下拉式菜单
在用户界面设计状态单击某一菜单项,编辑窗口出现该菜 单Click事件过程的代码,可在其中输入要执行的代码。各 菜单项对应的代码如下: Private Sub add_Click() '加法。
4
下拉式菜单
利用菜单编辑器,可以对窗体中所需的菜单各项属性进行 设置。菜单编辑器具体可分为3个部分,上部为属性设置区, 用来对菜单项进行标题、名称等的属性设置;中部为编辑 区,包含7个按钮,用来对输入的菜单项进行简单的编辑; 下部为菜单项显示区,前面所编辑的菜单项在此处显示。
属 性 设 置 区
编辑区
Font1 Font2 Font3
上级菜单 无
文件 文件 文件 文件 文件
无 编辑 编辑 编辑 编辑 字体 字体 字体
热键 F 无 无 无 无 无 E 无 无 无 无 无 无 无
快捷键 无
Ctrl+N Ctrl+O Ctrl+S
无 Ctrl+Q
无 Ctrl+X Ctrl+C Ctrl+V Ctrl+F
弹出式菜单设计
例:在前例的基础上增加一个快捷编辑菜单,包含 “剪切”、“复制”和“粘贴”功能,右击窗体时 弹出该快捷菜单。 操作步骤:
1.在菜单编辑器里新增一个菜单,保证该菜单为顶 层菜单项,即无缩进符号。标题设定为“Edit”,该 标题和名称可任意设定,因为它在快捷菜单弹出时 不显示。 2.将“Edit”菜单的可见属性设置为False。 3.单击“下一个”命令按钮,标题文本框中输入 “剪切”,编辑对应的名称,单击按钮,将“剪切” 菜单设置为“Edit”菜单的下一级菜单。
标题 清除 退出
名称 索引值 MOther 0 MOther 1
上级菜单 其他 其他
快捷键 Ctrl+E Ctrl+F
Private Sub MOther_Click(Index As Integer)
Select Case Index Case 0 '清除。
Text1 = "": Text2 = "": Text3 = ""
6
下拉式菜单
2.编辑区
(1)
用于调整菜单项的级别,单击一次
按钮,则产生一个内缩符
号“…”,表示为上一级的子菜单;单击一次
,删除一个内
缩符号,则该菜单项被提高一个级别。菜单项的级别最多可以设置
6级。
(2)
通过单击
或
按钮可将当前被选择的菜单项在同级里向
上或向下移动一个位置。
(3)“下一个”
介绍当前菜单项的编辑进入下一菜单项的编辑。
Text1.SetFocus
Case 1 '退出。
End
End Select
End Sub
20
8.3 弹出式菜单设计
右击窗体时弹出的菜单为弹出式菜单,一般集合了很多常 用的操作。弹出式菜单没有主菜单名,只有在使用时才会 在窗体上浮动显示。例如在VB的设计窗体中单击右键,弹 出的菜单如图 所示。
21
12
下拉式菜单
运行时可通过字体菜单修改文本中输入文字的字体。运行 的各种结果如图所示。
13
下拉式菜单
例:设计一个具有加、减、乘、除、清除和退出功能的程序。 思路:在前章中曾利用单选按钮完成过该例部分功能,此 处利用菜单来完成全部功能。该例的设计界面如图所示:
14
属性设置
标题 计算1
加 减 计算2 乘 除 其他 清除 退出
菜单命令只接受鼠标左键单击
Vbpopupmenurightbutton 2
菜单命令可接受鼠标左、右键单击
26
对话框
窗体
对话框
创建对话框的方法: 1.msgbox,inputbox函数: 2.自定义对话框: 3.通用对话框:一种控件(open对话框,save as对话框)
27
8.4 自定义对话框
1.由普通窗体创建自定义对话框 界面设计
下拉式菜单
Private Sub mul_Click() '乘法。 x = Val(Text1.Text) * Val(Text2.Text) Text3.Text = Str(x)
End Sub
Private Sub div_Click() '除法。 If Val(Text2.Text) <> 0 Then '除数是否为0的判断。 x = Val(Text1.Text) / Val(Text2.Text) Text3.Text = Str(x) Else MsgBox "除数不能为0!请重新输入!" Text2.Text = "" Text2.SetFocus End If
1
2
8.2 下拉式菜单
下拉式菜单的主菜单显示在菜单条里,VB中包含了13个主 菜单,如图 所示。
当程序执行时用鼠标或键盘选择某个菜单项会弹出下拉子 菜单。例如VB中单击“文件”主菜单或利用“Alt”+“F” 键的组合可以弹出文件的下拉子菜单。 在某些菜单项中还包含有分隔条,利用分隔条可将不同功 能菜单项进行分隔。菜单项还可包含快捷键和热键,利用 快捷键和热键的正确使用可以直接利用键盘调用对应的功 能,提高操作速度。
If Button = 2 Then '若单击鼠标右键。 PopupMenu Edit '弹出edit快捷菜单。
End If
End Sub
24
弹出式菜单设计
在窗体或控件的mouseup或mousedown事件中调用 popupmenu方法显示该菜单。 格式: popupmenu <菜单名>[,flag[,x[,y[,boldcommand]]]] 其中: 1. popupmenu不可前置其他控件名称 2. <菜单名>是我们设计好的菜单名称 3. flag参数为常数,用来设置显示位置与行为 4.x,y:设置菜单弹出的坐标位置 5. boldcommand:指定需要加粗显示的菜单项
9
下拉式菜单
1.建立菜单
标题
名称
文件(&F) 新建 打开 保存 - 退出
编辑(&E) 剪切 复制 粘贴 字体 黑体 宋体 楷体
mnuFile mnuFileNew mnuFileOpen mnuFileSave mnuFileBar mnuFileQuit
mnuEdit mnuEditCut mnuEditCopy mnuEditPaste mnuEditFont
End Sub 18
下拉式菜单
Private Sub clear_Click() '清除。
Text1 = "": Text2 = "": Text3 = "" Text1.SetFocus
End Sub Private Sub exit_Click() '退出。
End End Sub
19
下拉式菜单
23
弹出式菜单设计
因此需要在窗体的MouseUp事件里编写对应的代码。注意 只有在窗体上单击鼠标右键时才会弹出快捷菜单。具体代 码如下: Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
下拉式菜单
单击“编辑”菜单下的“字体”子菜单,选择“黑体”,弹出对应的 “单击”事件代码编辑窗口,下面为“黑体”子菜单编写代码如下: Private Sub Font1_Click() Text1.Font = "黑体" End Sub 此处黑体菜单的名称即为在设计时输入的名称“Font1”。 按照上述步骤依次选择“宋体”、“楷体”子菜单,完成相应的代码编 写。具体代码如下: Private Sub Font2_Click() Text1.Font = "宋体" End Sub Private Sub Font3_Click() Text1.Font = "楷体_Gb2312" End Sub
Windows环境下几乎所有的应用软件都通 过菜单实现各种操作,而对visual basic应用程 序来说,当操作比较简单的时候,一般通过控件 来执行,当要完成比较复杂的操作时,使用菜单 具有十分明显的优势。 菜单的类型: 控制菜单;下拉式菜单;快捷菜单(弹出式菜单) 菜单的作用: 1.提供人机对话的界面,以便让使用者选择应用 系统的各种功能, 2.管理应用系统,控制各种功能模块的运行。
菜
单
项
显
示
区
5
下拉式菜单
1.属性设置区:
(1)“标题caption”: (2)“名称name”:唯一标识该菜单 (3)“索引index”:菜单控件数组的索引号 (4)“快捷键shortcut”:缺省是none
(5)“复选checked”:菜单项前显示复选标志 √
(6)“有效enabled”:缺省为true (7)“可见visible”: 缺省为true (8)“帮助上下文”: 帮助文件中查找相应的帮助主题 (9)“协调位置”: 标题位置
3
下拉式菜单
菜单显示在窗体中,因此菜单的设置也和其他控件一样在 窗体内进行。VB为用户提供了菜单编辑器。打开菜单编辑 器的方法有如下几种: 1.在VB中单击“工具”菜单中的“菜单编辑器”子菜单; 2.利用“Ctrl”+“E”键的组合; 3.在需要建立菜单的窗体上右击,在弹出的菜单中选择 “菜单编辑器”命令; 4.单击工具栏中的“菜单编辑器” 快捷按钮。 用上述任一方法打开的“菜单编辑器”的对话框,如图所 示。
MsgBox "密码错误,重新输入" End If End Sub
x = Val(Text1.Text) + Val(Text2.Text) Text3.Text = Str(x)
End Sub
Private Sub sub_Click() '减法。 x = Val(Text1.Text) - Val(Text2.Text)
Text3.Text = Str(x)
17
22
弹出式菜单设计
4.参照步骤3完成“复制”和“粘贴”菜单的设置。 5.在VB中,需要使用PopupMenu方法来显示弹出 式菜单。其语法格式如下: [对象].PopupMenu 菜单名,标志,X,Y 其中对象为可选项,默认为Form对象;菜单名是必 须的,被指定的菜单必须至少包含一个子菜单;标 志参数及X、Y的值的作用是详细定义弹出式菜单的 弹出位置,当标志等于0时,为系统的默认状态,X 放映的是弹出菜单的左边界,当标志等于4时,X放 映的是弹出菜单的中心位置,当标志等于8时,X放 映的是弹出菜单的右边界。
(4)“插入”
在当前菜单项的前面插入一个空白菜单项。
(5)“删除”
删除当前菜单项。
7
下拉式菜单
3.菜单项显示区
该区域用于显示输入的菜单项,编辑好的菜单项可通过内缩 符号表明其层次,如图所示:编辑为主菜单,其下有4个子菜 单,而字体子菜单下还有3个二级菜单。
8
下拉式菜单
例:设计一个包含菜单的窗体,其中主菜单为文件和编辑菜 单,文件菜单包含新建、打开、保存、退出四个下拉菜单, 编辑菜单包含剪切、复制、粘贴和字体四个下拉菜单,字 体菜单又包含黑体、宋体、楷书三个下拉菜单。具体设计 完毕后效果如图12-4所示。
无 无 无
10
下拉式菜单
2.编写代码
菜单设置好后,需要给每个需要完成某些功能的菜单项编 写对应的代码。给例的窗体内添加一个文本框Text1,Text1 的属性如表所示。
对象名 Text
属性 Name Text MultiLine ScrollBar
属性值 Text1 清空 True 3-both
11
属性设置 Borderstyle:窗体的边框样式————设置为3 controlbox:显示控制菜单框
28
自定义对话框
代码设计 Private Sub Command1_Click()
Form2.Show Form1.Hide End Sub Private Sub Command1_Click() If Text1.Text = "password" Then Else
25
Flag参数的取值及含义
系统常量
值
说明
vbpopupmenuleftalign
0 缺省值,指定x的位置作为弹出式菜单的 左上角
vbpopupmenucenteralign 4 指定x的位置作为弹出式菜单的中心点
Vbpopupmenurightalign 8 指定x的位置作为弹出式菜单的右上角
Vbpopupmenuleftbutton 0
下拉式菜单
名称 js1 add Sub Js2 Mul Div Other Clear Exit
上级菜单 无
计算1 计算1
无 计算2 计算2
无 其他 其他
快捷键 无
Ctrl+A Ctrl+B
无 Ctrl+C Ctrl+D
无 Ctrl+E Ctrl+F
15
பைடு நூலகம்
下拉式菜单
16
下拉式菜单
在用户界面设计状态单击某一菜单项,编辑窗口出现该菜 单Click事件过程的代码,可在其中输入要执行的代码。各 菜单项对应的代码如下: Private Sub add_Click() '加法。
4
下拉式菜单
利用菜单编辑器,可以对窗体中所需的菜单各项属性进行 设置。菜单编辑器具体可分为3个部分,上部为属性设置区, 用来对菜单项进行标题、名称等的属性设置;中部为编辑 区,包含7个按钮,用来对输入的菜单项进行简单的编辑; 下部为菜单项显示区,前面所编辑的菜单项在此处显示。
属 性 设 置 区
编辑区
Font1 Font2 Font3
上级菜单 无
文件 文件 文件 文件 文件
无 编辑 编辑 编辑 编辑 字体 字体 字体
热键 F 无 无 无 无 无 E 无 无 无 无 无 无 无
快捷键 无
Ctrl+N Ctrl+O Ctrl+S
无 Ctrl+Q
无 Ctrl+X Ctrl+C Ctrl+V Ctrl+F
弹出式菜单设计
例:在前例的基础上增加一个快捷编辑菜单,包含 “剪切”、“复制”和“粘贴”功能,右击窗体时 弹出该快捷菜单。 操作步骤:
1.在菜单编辑器里新增一个菜单,保证该菜单为顶 层菜单项,即无缩进符号。标题设定为“Edit”,该 标题和名称可任意设定,因为它在快捷菜单弹出时 不显示。 2.将“Edit”菜单的可见属性设置为False。 3.单击“下一个”命令按钮,标题文本框中输入 “剪切”,编辑对应的名称,单击按钮,将“剪切” 菜单设置为“Edit”菜单的下一级菜单。
标题 清除 退出
名称 索引值 MOther 0 MOther 1
上级菜单 其他 其他
快捷键 Ctrl+E Ctrl+F
Private Sub MOther_Click(Index As Integer)
Select Case Index Case 0 '清除。
Text1 = "": Text2 = "": Text3 = ""
6
下拉式菜单
2.编辑区
(1)
用于调整菜单项的级别,单击一次
按钮,则产生一个内缩符
号“…”,表示为上一级的子菜单;单击一次
,删除一个内
缩符号,则该菜单项被提高一个级别。菜单项的级别最多可以设置
6级。
(2)
通过单击
或
按钮可将当前被选择的菜单项在同级里向
上或向下移动一个位置。
(3)“下一个”
介绍当前菜单项的编辑进入下一菜单项的编辑。
Text1.SetFocus
Case 1 '退出。
End
End Select
End Sub
20
8.3 弹出式菜单设计
右击窗体时弹出的菜单为弹出式菜单,一般集合了很多常 用的操作。弹出式菜单没有主菜单名,只有在使用时才会 在窗体上浮动显示。例如在VB的设计窗体中单击右键,弹 出的菜单如图 所示。
21
12
下拉式菜单
运行时可通过字体菜单修改文本中输入文字的字体。运行 的各种结果如图所示。
13
下拉式菜单
例:设计一个具有加、减、乘、除、清除和退出功能的程序。 思路:在前章中曾利用单选按钮完成过该例部分功能,此 处利用菜单来完成全部功能。该例的设计界面如图所示:
14
属性设置
标题 计算1
加 减 计算2 乘 除 其他 清除 退出
菜单命令只接受鼠标左键单击
Vbpopupmenurightbutton 2
菜单命令可接受鼠标左、右键单击
26
对话框
窗体
对话框
创建对话框的方法: 1.msgbox,inputbox函数: 2.自定义对话框: 3.通用对话框:一种控件(open对话框,save as对话框)
27
8.4 自定义对话框
1.由普通窗体创建自定义对话框 界面设计
下拉式菜单
Private Sub mul_Click() '乘法。 x = Val(Text1.Text) * Val(Text2.Text) Text3.Text = Str(x)
End Sub
Private Sub div_Click() '除法。 If Val(Text2.Text) <> 0 Then '除数是否为0的判断。 x = Val(Text1.Text) / Val(Text2.Text) Text3.Text = Str(x) Else MsgBox "除数不能为0!请重新输入!" Text2.Text = "" Text2.SetFocus End If
1
2
8.2 下拉式菜单
下拉式菜单的主菜单显示在菜单条里,VB中包含了13个主 菜单,如图 所示。
当程序执行时用鼠标或键盘选择某个菜单项会弹出下拉子 菜单。例如VB中单击“文件”主菜单或利用“Alt”+“F” 键的组合可以弹出文件的下拉子菜单。 在某些菜单项中还包含有分隔条,利用分隔条可将不同功 能菜单项进行分隔。菜单项还可包含快捷键和热键,利用 快捷键和热键的正确使用可以直接利用键盘调用对应的功 能,提高操作速度。
If Button = 2 Then '若单击鼠标右键。 PopupMenu Edit '弹出edit快捷菜单。
End If
End Sub
24
弹出式菜单设计
在窗体或控件的mouseup或mousedown事件中调用 popupmenu方法显示该菜单。 格式: popupmenu <菜单名>[,flag[,x[,y[,boldcommand]]]] 其中: 1. popupmenu不可前置其他控件名称 2. <菜单名>是我们设计好的菜单名称 3. flag参数为常数,用来设置显示位置与行为 4.x,y:设置菜单弹出的坐标位置 5. boldcommand:指定需要加粗显示的菜单项
9
下拉式菜单
1.建立菜单
标题
名称
文件(&F) 新建 打开 保存 - 退出
编辑(&E) 剪切 复制 粘贴 字体 黑体 宋体 楷体
mnuFile mnuFileNew mnuFileOpen mnuFileSave mnuFileBar mnuFileQuit
mnuEdit mnuEditCut mnuEditCopy mnuEditPaste mnuEditFont
End Sub 18
下拉式菜单
Private Sub clear_Click() '清除。
Text1 = "": Text2 = "": Text3 = "" Text1.SetFocus
End Sub Private Sub exit_Click() '退出。
End End Sub
19
下拉式菜单
23
弹出式菜单设计
因此需要在窗体的MouseUp事件里编写对应的代码。注意 只有在窗体上单击鼠标右键时才会弹出快捷菜单。具体代 码如下: Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
下拉式菜单
单击“编辑”菜单下的“字体”子菜单,选择“黑体”,弹出对应的 “单击”事件代码编辑窗口,下面为“黑体”子菜单编写代码如下: Private Sub Font1_Click() Text1.Font = "黑体" End Sub 此处黑体菜单的名称即为在设计时输入的名称“Font1”。 按照上述步骤依次选择“宋体”、“楷体”子菜单,完成相应的代码编 写。具体代码如下: Private Sub Font2_Click() Text1.Font = "宋体" End Sub Private Sub Font3_Click() Text1.Font = "楷体_Gb2312" End Sub