菜单对象(针对 Visual Basic 6.0 用户)
来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:31:36
Visual Basic 6.0 中的 Menu 对象在 Visual Basic 2005 中被
概念差异
在 Visual Basic 6.0 中,Menu 对象是使用“菜单编辑器”创建的。Menu 对象绑定到相应的窗体,但这些对象可在运行时修改或作为上下文菜单显示。使用 Menu 对象创建的菜单本身不支持阴影、图标或嵌入式控件;只能创建 Windows 98 式的“平面”菜单。
在 Visual Basic 2005 中,Menu 对象被 MenuStrip 和 ContextMenuStrip 组件所取代。可以在设计时以就地编辑的方式创建菜单,也可以使用代码创建菜单。使用 MenuStrip 和 ContextMenuStrip 组件允许您创建 Office 工具栏样式的现代化菜单,并完全支持阴影区域、图标和嵌入式控件(例如下拉列表)。有关更多信息,请参见
显示上下文菜单
在 Visual Basic 6.0 中,可以通过调用 PopupMenu 方法然后为其传递任何顶级 Menu 对象,来显示上下文菜单。例如,如果有一个名为 mnuEdit
的“Edit”菜单,并带有“Cut”、“Copy”和“Paste”子菜单,可以通过调用 PopupMenu mnuEdit
显示带有“Cut”、“Copy”和“Paste”命令的上下文菜单。
在 Visual Basic 2005 中,上下文菜单使用单独的 ContextMenuStrip 组件显示。没有 PopupMenu 方法的等效项,但仍可以通过在设计时创建 ContextMenuStrip 并共享事件处理程序,在 MenuStrip 和 ContextMenuStrip 之间共享命令。
Menu 对象代码更改
下面的示例演示 Visual Basic 6.0 和 Visual Basic 2005 在编码方法上的不同之处。
上下文菜单显示代码的更改
下面的代码演示如何在上下文菜单中显示现有“Edit”菜单中的“Cut”、“Copy”和“Paste”命令。
' Visual Basic 6.0 Private Sub mnuCut_Click() MsgBox "You selected Cut" End Sub Private Sub mnuCopy_Click() MsgBox "You selected Copy" End Sub Private Sub mnuPaste_Click() MsgBox "You selected Paste" End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu mnuEdit End If End Sub
' Visual Basic 2005 ' You must first add a ContextMenuStrip component to the form at design ' time and add Cut, Copy, and Paste menu items named ' CutContextMenuItem, CopyContextMenuItem, and PasteContextMenuItem. Private Sub CutToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CutToolStripMenuItem.Click MsgBox("Cut") End Sub Private Sub CopyToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CopyToolStripMenuItem.Click MsgBox("Copy") End Sub Private Sub PasteToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles PasteToolStripMenuItem.Click MsgBox("Paste") End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As _ System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown If e.Button = Windows.Forms.MouseButtons.Right Then Me.ContextMenuStrip = ContextMenuStrip1 AddHandler CutContextMenuItem.Click, _ AddressOf CutToolStripMenuItem_Click AddHandler CopyContextMenuItem.Click, _ AddressOf CopyToolStripMenuItem_Click AddHandler PasteContextMenuItem.Click, _ AddressOf PasteToolStripMenuItem_Click End If End Sub
菜单属性和方法等效项
下面几个表列出了 Visual Basic 6.0 中的属性和方法及它们的 Visual Basic 2005 等效项。具有相同的名称和行为的属性及方法未予列出。除非另外说明,否则所有 Visual Basic 2005 枚举都映射到
此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2005 中没有直接等效项,则提供指向介绍替换项的主题的链接。
属性
Caption
HelpContextID
新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。
Index
新的实现。请参见
NegotiatePosition
无等效项。此属性原来仅用于 OLE 链接和嵌入,现已不再支持。
Parent
WindowList
方法
PopupMenu
新的实现。使用 ContextMenuStrip 组件。
升级说明
当 Visual Basic 6.0 应用程序升级到 Visual Basic 2005 时,将不升级对 PopupMenu 方法的任何调用;必须创建上下文菜单替换这些调用。