对vb.NET的开发者而言,能在设计与运行时操作菜单项目是非常有帮助的,这篇技巧将探索如何在设计与运行时创建和改变菜单项目。
菜单是大多数应用软件中必不可少的一部分,在设计时与运行时操作它们的能力对vb.NET开发者是非常有帮助的。在这篇技巧中,我将着眼于如何在设计时与运行时创建和改变菜单项目。
首先,我们先回顾一些菜单的基础知识。为了在您的应用软件中使用菜单,您需要在设计时使用MainMenu组件创建一个主菜单项目,这个MainMenu组件将允许您:创建和添加新菜单和新的菜单栏;使用属性窗口来改变菜单项目属性;并为菜单事件创建事件处理器。
在设计时创建菜单项目
您可以在表单工具箱中找到MainMenu组件,为了添加MainMenu组件到您的表单上,可以将该控件托拽到表单上或在该控件上用右键点击。
通过MainMenu组件,您可以向vb.NET的Windows表单中快速而简便地添加菜单,而且显示在您的表单中的菜单和运行时显示的是一样的。当您输入时,额外的菜单框会在第一个菜单项目的右边出现,子菜单也可以按同样的方式创建。如果要创建一个子菜单,只需要简单地在您想扩展的菜单项目右边输入一个条目。
在运行时操作菜单项目
您可以在运行时动态操作菜单项目,这种动态操作是必须的,如果您需要对软件用户的某一操作做出响应来显示某一组特殊的菜单。而且,如果用此功能来禁止菜单对错误进行响应也是很有用的。您可以选择在运行时添加、隐藏或者禁止菜单,并可对它们旁边的复选按钮做出同样的选择。
代码示例
在列表A中,我创建了三个新的菜单项目,mnuMenuItem1、mnuMenuItem2和mnuMenuItem3,我向MainMenu1菜单中添加了mnuMenuItem1和mnuMenuItem2,并设定mnuMenuItem3作为mnuMenuItem2的子菜单。注意我将mnuMenuItem3的选中属性(Checked)设为True并在这个项目旁边放置了一个复选框,我还定义了两个事件:mnuMenuItem1_Click和mnuMenuItem3_Click,当用户点击了菜单之后将显示一个消息对话框,列表A中的代码的运行结果应该和图B看上去相仿。
列表A:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SetMenus()
End Sub
Private Sub SetMenus()
Dim mnuMenuItem1 As MenuItem, mnuMenuItem2 As MenuItem, mnuMenuItem3 As MenuItem
mnuMenuItem1 = New MenuItem("Item 1", New EventHandler(AddressOf mnuMenuItem1_Click))
MainMenu1.MenuItems.Add(mnuMenuItem1)
mnuMenuItem2 = New MenuItem("Item 2")
MainMenu1.MenuItems.Add(mnuMenuItem2)
mnuMenuItem3 = New MenuItem("Item 3", New EventHandler(AddressOf mnuMenuItem3_Click))
mnuMenuItem3.Checked = True
mnuMenuItem2.MenuItems.Add(mnuMenuItem3)
End Sub
Private Sub mnuMenuItem1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Menu Item 1 Clicked")
End Sub
Private Sub mnuMenuItem3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Menu Item 3 Clicked")
End Sub
图B:

责任编辑:张琎