第十章  其他常用语句及控件
双击滚屏  关闭窗口

 

10.5 菜单设计

  10.5.1 下拉式菜单
  10.5.2 菜单编辑器
  10.5.3
菜单的 Click 事件
  10.5.5
弹出式菜单


应用程序通过菜单为用户提供一组命令

菜单一般分为两种:下拉式菜单和弹出式菜单

10.5.1 下拉式菜单

下拉式菜单的结构

下拉式菜单基本结构包括:顶层菜单、菜单项和子菜单

10.5.2 菜单编辑器

设计菜单的工具 —— 菜单编辑器

菜单编辑器分为上、下两部分,上半部分用来设置属性,下半部分是菜单显示区,用来显示用户输入的菜单内容。

10.5.3 菜单的 Click 事件

除分隔线以外的所有菜单元素都能识别 Click 事件

例 10.8 编一程序,进行两个操作数的算术运算练习

设计步骤如下:

(1) 创建应用程序的用户界面和设置对象属性 菜单栏向用户提供功能选择,包括运算数的位数,运算符类型 ( 加、减、乘 ) 和退出程序

                     菜单设计

各个菜单项名称

(2) 编写程序代码

Option Explicit ‘ 规定所有变量都要显式声明,见 10.9.1 节

Dim sel1 As Integer, sel2 As String

Dim r1 As Long

Private Sub Form_Load()

sel1 = 0 ' 位数标记

sel2 = "" ' 运算标记

Randomize

End Sub

Private Sub Mnu11_Click() ‘ 单击 “ 一位数 ” 菜单项

sel1 = 1 ' 设置位数标记

End Sub

Private Sub Mnu12_Click() ‘ 单击 “ 二位数 ” 菜单项

sel1 = 10

End Sub

Private Sub Mnu13_Click() ‘ 单击 “ 三位数 ” 菜单项

sel1 = 100

End Sub

Private Sub Mnu21_Click() ‘ 单击 “ 加法 ” 菜单项

sel2 = "+" ' 设置运算标记

End Sub

Private Sub Mnu22_Click() ‘ 单击 “ 减法 ” 菜单项

sel2 = "-"

End Sub

Private Sub Mnu23_Click() ‘ 单击 “ 乘法 ” 菜单项

sel2 = "*"

End Sub

Private Sub Command1_Click() '" 命题 " 按钮单击事件

Dim a As Long, b As Long

If sel1 = 0 Or sel2 = "" Then

MsgBox " 先选择运算数的位数和运算类型 "

Exit Sub

End If

a=sel1+Int(9 * sel1 * Rnd)‘ 根据指定位数,随机生成操作数

b = sel1 + Int(9 * sel1 * Rnd)

Text1.Text = Str(a) + sel2 + Str(b) + “=”

‘ 根据操作数及运算类型组成算式

Select Case sel2 ‘ 根据运算类型,求运算结果 r1

Case "+"

r1 = a + b

Case "-"

r1 = a - b

Case "*"

r1 = a * b

End Select

Text2.Text = ""

Text2.SetFocus

End Sub

Private Sub Command2_Click() '" 答题 " 按钮单击事件

Dim r2 As Long

If Text2.Text = "" Then

MsgBox " 请输入答案 "

Exit Sub

End If

r2 = Val(Text2.Text) ' 读取用户的答案

If r1 = r2 Then ' 判断答案

MsgBox " 正确 "

Else

MsgBox " 错误 "

End If

End Sub

Private Sub Mnu30_Click() ‘“ 退出 ” 菜单命令

End

End Sub

10.5.5 弹出式菜单

弹出式菜单又称为快捷菜单。可以根据右击鼠标时的位置弹出不同的菜单。

使用 VB 提供的菜单编辑器,把某个菜单设置成隐藏。

创建快捷菜单的步骤如下:

(1) 使用菜单编辑器设计菜单

(2) 设置顶层菜单项为不可见,即不选中菜单编辑器里的 “ 可见 ” 选项或在属性窗口中设定 Visible 属性为 False

(3) 编写与弹出式菜单相关联的 MouseUp( 释放鼠标 ) 事件过程。格式为:

[对象] PopupMenu 菜单名 [, 位置常数 ][, 横坐标 [, 纵坐标 ]] ]

例 10.9 在例 10.8 的基础上,把 “ 位数 ” 菜单改为快捷菜单

(1) 打开例 10.8 的应用程序,选定窗体,然后在菜单编辑器中将 “ 位数 ” 菜单标题的 “ 可见 ” 框中的 “ √ ” 取消 ( 即不选中 ) 

(2) 增加以下的 MouseUp 事件过程代码:

Private Sub Form_MouseUp(Button As Integer, _

Shift As Integer, X As Single, Y As Single) 

If Button = 2 Then ‘ 检查是否右击 , 击左键为 1 

PopupMenu mnu10 

End If 

End Sub

程序运行时,右击窗体空白处,即会弹出快捷菜单,如图所示

                  

 
双击滚屏  关闭窗口
 
版权所有数学与信息科学学院