菜单对象(针对 Visual Basic 6.0 用户)

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:31:36

Visual Basic 6.0 中的 Menu 对象在 Visual Basic 2005 中被 MenuStrip 控件或 ContextMenuStrip 控件所取代。某些属性、方法、事件和常数的名称是不同的,在某些情况下,行为也有所不同。

概念差异

在 Visual Basic 6.0 中,Menu 对象是使用“菜单编辑器”创建的。Menu 对象绑定到相应的窗体,但这些对象可在运行时修改或作为上下文菜单显示。使用 Menu 对象创建的菜单本身不支持阴影、图标或嵌入式控件;只能创建 Windows 98 式的“平面”菜单。

在 Visual Basic 2005 中,Menu 对象被 MenuStripContextMenuStrip 组件所取代。可以在设计时以就地编辑的方式创建菜单,也可以使用代码创建菜单。使用 MenuStripContextMenuStrip 组件允许您创建 Office 工具栏样式的现代化菜单,并完全支持阴影区域、图标和嵌入式控件(例如下拉列表)。有关更多信息,请参见 MenuStrip 控件概述(Windows 窗体)

显示上下文菜单

在 Visual Basic 6.0 中,可以通过调用 PopupMenu 方法然后为其传递任何顶级 Menu 对象,来显示上下文菜单。例如,如果有一个名为 mnuEdit 的“Edit”菜单,并带有“Cut”、“Copy”和“Paste”子菜单,可以通过调用 PopupMenu mnuEdit 显示带有“Cut”、“Copy”和“Paste”命令的上下文菜单。

在 Visual Basic 2005 中,上下文菜单使用单独的 ContextMenuStrip 组件显示。没有 PopupMenu 方法的等效项,但仍可以通过在设计时创建 ContextMenuStrip 并共享事件处理程序,在 MenuStripContextMenuStrip 之间共享命令。

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  复制代码
' 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            
Visual Basic  复制代码
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 枚举都映射到 System.Windows.Forms 命名空间。

此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2005 中没有直接等效项,则提供指向介绍替换项的主题的链接。

属性

Visual Basic 6.0 Visual Basic 2005 等效项

Caption

Text (MenuStripItem)

HelpContextID

新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。

Index

新的实现。请参见 ToolStripItemCollection 类的 Index 属性。

NegotiatePosition

无等效项。此属性原来仅用于 OLE 链接和嵌入,现已不再支持。

Parent

FindForm 方法

WindowList

MdiWindowListItem

方法

Visual Basic 6.0 Visual Basic 2005 等效项

PopupMenu

新的实现。使用 ContextMenuStrip 组件。

升级说明

当 Visual Basic 6.0 应用程序升级到 Visual Basic 2005 时,将不升级对 PopupMenu 方法的任何调用;必须创建上下文菜单替换这些调用。

请参见

参考

MenuStrip 控件概述(Windows 窗体)

概念

菜单处理(针对 Visual Basic 6.0 用户)

其他资源

适用于 Visual Basic 6.0 用户的 Windows 窗体控件