Visual Basic 6.0 中的 Menu 對象在 Visual Basic 2005 中被
在 Visual Basic 6.0 中,Menu 對象是使用“菜單編輯器”創(chuàng)建的。Menu 對象綁定到相應的窗體,但這些對象可在運行時修改或作為上下文菜單顯示。使用 Menu 對象創(chuàng)建的菜單本身不支持陰影、圖標或嵌入式控件;只能創(chuàng)建 Windows 98 式的“平面”菜單。
在 Visual Basic 2005 中,Menu 對象被 MenuStrip 和 ContextMenuStrip 組件所取代??梢栽谠O計時以就地編輯的方式創(chuàng)建菜單,也可以使用代碼創(chuàng)建菜單。使用 MenuStrip 和 ContextMenuStrip 組件允許您創(chuàng)建 Office 工具欄樣式的現代化菜單,并完全支持陰影區(qū)域、圖標和嵌入式控件(例如下拉列表)。有關更多信息,請參見
在 Visual Basic 6.0 中,可以通過調用 PopupMenu 方法然后為其傳遞任何頂級 Menu 對象,來顯示上下文菜單。例如,如果有一個名為 mnuEdit
的“Edit”菜單,并帶有“Cut”、“Copy”和“Paste”子菜單,可以通過調用 PopupMenu mnuEdit
顯示帶有“Cut”、“Copy”和“Paste”命令的上下文菜單。
在 Visual Basic 2005 中,上下文菜單使用單獨的 ContextMenuStrip 組件顯示。沒有 PopupMenu 方法的等效項,但仍可以通過在設計時創(chuàng)建 ContextMenuStrip 并共享事件處理程序,在 MenuStrip 和 ContextMenuStrip 之間共享命令。
下面的示例演示 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 枚舉都映射到
此表提供相關主題的鏈接,這些主題對行為之間的差異進行說明。如果 Visual Basic 2005 中沒有直接等效項,則提供指向介紹替換項的主題的鏈接。
Visual Basic 6.0 | Visual Basic 2005 等效項 |
---|---|
Caption | |
HelpContextID | 新的實現。有關更多信息,請參見幫助支持(針對 Visual Basic 6.0 用戶)。 |
Index | 新的實現。請參見 |
NegotiatePosition | 無等效項。此屬性原來僅用于 OLE 鏈接和嵌入,現已不再支持。 |
Parent | |
WindowList | |
Visual Basic 6.0 | Visual Basic 2005 等效項 |
---|---|
PopupMenu | 新的實現。使用 ContextMenuStrip 組件。 |
當 Visual Basic 6.0 應用程序升級到 Visual Basic 2005 時,將不升級對 PopupMenu 方法的任何調用;必須創(chuàng)建上下文菜單替換這些調用。