三、动态创建弹出菜单
上面我们学会了用设计器来设计窗体菜单和弹出菜单,但是要真正掌握菜单类的编程,光靠使用设计器还是远远不够的,我们还需要学会使用MainMenu类、MenuItem类和ContextMenu类来生成菜单。
MainMenu类表示的是下拉菜单的结构。在创建完MainMenu实例后,还需要把该实例绑定到要显示此菜单的Form中,下拉菜单才能够显示,而要实现这种绑定其实非常简单,只需把MainMenu实例分配给Form的Menu属性就可以了。
ContextMenu类表示当用户在控件或窗体的特定区域上单击鼠标右键时弹出的菜单结构。可视控件和Form窗体一般都有ContextMenu属性。要显示ContextMenu实例,只需把ContextMenu实例分配给要显示此弹出菜单的可视组件或Form窗体的ContextMenu 属性就可以了。多个组件可共同使用一个ContextMenu实例。
MenuItem类表示的是MainMenu和ContextMenu中的每一个菜单项。显示创建的MenuItem实例,必须使用MainMenu或ContextMenu中的“Add”方法把MenuItem实例加入。若要创建子菜单,可以使用父MenuItem实例的“Add”方法把MenuItem实例添加到其MenuItems属性中。MenuItem类还提供一些属性用以设定菜单项的外观和功能。若要显示菜单项旁边的选中标记,可以使用Checked 属性。Shortcut属性可用于设定此菜单项对应的键盘组合键。
下面我们就用代码来创建一个和图六中一样的下拉菜单。
1、首先把我们前面用菜单设计器设计的下来菜单删除了。在Form1的代码编辑器中加入AddMainMenu过程:
Public Sub AddMainMenu()
End Sub
2、创建一个MainMenu实例
Dim MainMenu1 As MainMenu = New MainMenu
3、创建菜单项"编辑"
Dim MenuItem1 As MenuItem = New MenuItem
MenuItem1.Text = "编辑(&E)"
同理分别创建菜单中的"剪切"、"复制"、"粘贴"、分隔符、"查找"五个子菜单项
Dim MenuItem2 As MenuItem = New MenuItem
MenuItem2.Text = "剪切"
Dim MenuItem3 As MenuItem = New MenuItem
MenuItem3.Text = "复制"
Dim MenuItem4 As MenuItem = New MenuItem
MenuItem4.Text = "粘帖"
Dim MenuItem5 As MenuItem = New MenuItem
MenuItem5.Text = "-"
Dim MenuItem6 As MenuItem = New MenuItem
MenuItem6.Text = "查找"
4、在MainMenu1实例中加入顶级菜单项MenuItem1
MainMenu1.MenuItems.Add(MenuItem1)
5、为顶级菜单项添加子菜单项
MenuItem1.MenuItems.Add(MenuItem2)
MenuItem1.MenuItems.Add(MenuItem3)
MenuItem1.MenuItems.Add(MenuItem4)
MenuItem1.MenuItems.Add(MenuItem5)
MenuItem1.MenuItems.Add(MenuItem6)
6、把MainMenu1实例关联到Form1窗体上
Me.Menu = MainMenu1
7、最后把AddMainMenu添加到Form1窗体的New过程中,如下所示:
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
AddMainMenu()
End Sub
文字:http://www.qqread.com/book/myvbnet/my0006.html相关专题
- Windows操作系统安装 (15669篇文章)
- Windows权限设置 (10273篇文章)
- Windows操作系统安全集 (18739篇文章)
- Solaris基础知识入门 (4653篇文章)
- .NET移动与嵌入式技术 (5974篇文章)
- .NET开发手册 (5673篇文章)
- Windows频道 (9846篇文章)
- vb入门教程 (130篇文章)
- .NET框架架构 (467篇文章)
- vb.net GDI+入门——使用DrawString显示文本 (0次浏览)
- VB2005中开发新一代控制台应用程序(1) (0次浏览)
- VB2005中开发新一代控制台应用程序(2) (0次浏览)
- VB2005中开发新一代控制台应用程序(3) (0次浏览)
- vb.net使用ListView 控件显示系统驱动器 (0次浏览)
- vb.net入门——ListView 控件的使用 (0次浏览)
- vb.net GDI+入门——使用Graphics对象填充图形 (0次浏览)
- .Net中ListView控件多选时复选框自动选择问题 (0次浏览)
- vb.net GDI+入门——使用Graphics对象绘制线图 (0次浏览)
- vb.net GDI+入门——了解Font类 (0次浏览)



