Visual Basic 菜单编辑器

菜单编辑器是Visual Basic提供的用于设计菜单的编辑器。用菜单编辑器可以创建新的菜单和菜单项,在已有的菜单上增加新的菜单命令,编辑已有的菜单命令,以及修改和删除已有的菜单和菜单项。要打开菜单编辑器,可以在"工具"菜单中选择"菜单编辑器",或者单击工具栏中的"菜单编辑器"按钮,打开后的菜单编辑器如图7.3所示。

图7.3 菜单编辑器

菜单编辑器分为3部分:菜单项属性区、编辑区和菜单项显示区。

1. 菜单项属性区

用来输入或修改菜单项,设置属性。分为若干栏,各栏的作用如下:

(1) 标题(Caption):用于设置菜单栏上显示的文本。如果想定义热键,可以在标题中使用"&访问字符"的格式,然后可以用"Alt+带下划线的字符"来选中这个项目。如果在该栏中输入一个减号(-),可以在菜单中加入一条分隔线。

(2) 名称(Name):菜单控件的名字,每个菜单项都必须有个名字,就像命令按钮、文本框一样。菜单名字一般以mnu作为前缀,后面的为顶层菜单的名称,如"文件"菜单名称为"mnuFile",而其下一级子菜单"新建"的名称为"mnuFileNew"。

(3) 索引(Index):设置菜单控件数组的下标,相当于控件数组的Index属性。

(4) 快捷键(Shortcut):可以在快捷键组合框中输入快捷键,也可以选取功能键、组合键来设置。快捷键将自动出现在菜单上,要删除快捷键应选取列表顶部的"none"。如为"新建"菜单创建快捷键Ctrl+N,在运行时按Ctrl+N键作为快捷键。但在菜单条上的第一级菜单不能设置快捷键。

(5) 帮助上下文件ID:指定一个唯一的数值作为帮助文本的标识符,可根据该数值在帮助文件中查找合适的帮助主题。

(6) 协调位置:与OLE功能有关,一般取值为0。

(7) 复选(Checked):当该属性为True时,可以在相应的菜单项旁边加上记号"√",表明该菜单项处于活动状态。

(8) 有效(Enabled):用来设置菜单项的操作状态。如果该属性被设置为False,则相应的菜单项将会变"灰",不响应用户事件。

(9) 可见(Visible):设置该菜单项是否可见。如果该属性被设置为False,则相应的菜单项将被暂时从菜单中去掉,直到重新被设置为True。

(10) 显示窗口列表(WindowsList):用来设置在MDI应用程序中,菜单控件是否包含一个打开的MDI子窗体列表。

2. 编辑区

编辑区共有7个按钮,用来对输入的菜单项进行简单的编辑。

(1) 左、右箭头:用来产生或取消内缩符号。单击一次右箭头可以产生4个点(....),单击一次左箭头则删除4个点。这4个点称为内缩符号,用来确定菜单的层次。

(2) 上、下箭头:用来在菜单项显示区中移动菜单项的位置。把条形光标移到某个菜单项上,单击上箭头将使该菜单项上移,单击下箭头将使该菜单项下移。

(3) 下一个:用于进入下一个菜单项的设计。

(4) 插入:在光标所在处插入一个空白菜单项。

(5) 删除:删除光标所在处的菜单项。

3. 菜单项显示区

位于菜单编辑器的下部,输入的菜单项在这里显示出来,并通过内缩符号表明菜单项的层次。单击"确定"按钮,创建的菜单标题将显示在窗体上(见图7.1)。

菜单设计好后,还要为每个菜单项编写事件代码。例如,关闭菜单项的代码为:

Private Sub mnuFileQuit_Click()

Unload Me

End Sub

【例7.1】 设置一个程序,通过菜单让用户输入文字,然后在窗体上显示出来,并能通过菜单来改变字形是否为粗体、斜体或下划线。

首先,在窗体上添加一个标签Label1,用来显示用户输入的文字。然后打开菜单编辑器,添加相应的菜单项,如表7.1所示。

表7.1 改变字形菜单项

|---------------|-------------------|
| 标 题 | 名 称 |
| 文件(&F) | mnuFile |
| .... 输入(&I) | mnuFile_Input |
| .... - | mnuFile_Back |
| .... 退出(&X) | mnuFile_Exit |
| 字形(&N) | mnuFont |
| .... 斜体(&I) | mnuFont_Italic |
| .... 粗体(&B) | mnuFont_Bold |
| .... 下划线(&U) | mnuFont_Underline |

建立好的用户界面如图7.4所示。

图7.4 改变字形的窗体

最后,在代码编辑窗口输入下面的代码:

Private Sub Form_Load()

Label1.FontBold = False

Label1.FontItalic = False

Label1.FontUnderline = False

Label1.FontName = "Times New Roman"

Label1.FontSize = "28"

mnuFont = False

End Sub

Private Sub mnuFile_Exit_Click()

Unload Me

End Sub

Private Sub mnuFile_Input_Click()

Label1.Caption = InputBox("请输入:")

If Label1.Caption <> "" Then

mnuFont = True

Else

mnuFont = False

End If

End Sub

Private Sub mnuFont_Bold_Click()

Label1.FontBold = Not Label1.FontBold

mnuFont_Bold.Checked = Label1.FontBold

End Sub

Private Sub mnuFont_Italic_Click()

Label1.FontItalic = Not Label1.FontItalic

mnuFont_Italic.Checked = Label1.FontItalic

End Sub

Private Sub mnuFont_Underline_Click()

Label1.FontUnderline = Not Label1.FontUnderline

mnuFont_Underline.Checked = Label1.FontUnderline

相关推荐
kyle~6 小时前
原子性与原子操作
运维·服务器·开发语言·c++
前路不黑暗@6 小时前
Java:继承与多态
java·开发语言·windows·经验分享·笔记·学习·学习方法
voice6706 小时前
西电现代密码学实验一
开发语言·python·密码学
五条凪6 小时前
Verilog-Eval-v1基准测试集搭建指南
开发语言·人工智能·算法·语言模型
初学小白...6 小时前
反射概述and获得反射对象
开发语言·python
后藤十八里7 小时前
2025python学习笔记Part2
开发语言·python
屹奕7 小时前
基于EasyExcel实现Excel导出功能
java·开发语言·spring boot·excel
hixiong1237 小时前
C# OpencvSharp使用lpd_yunet进行车牌检测
开发语言·opencv·计算机视觉·c#
Lj2_jOker7 小时前
QT 给Qimage数据赋值,显示异常,像素对齐的坑
开发语言·前端·qt