Menu-Objekt für Visual Basic 6.0-Benutzer
Aktualisiert: November 2007
Das Menu-Objekt in Visual Basic 6.0 wird in Visual Basic 2008 entweder durch das MenuStrip-Steuerelement oder das ContextMenuStrip-Steuerelement ersetzt. Die Namen einiger Eigenschaften, Methoden, Ereignisse und Konstanten wurden geändert, und in einigen Fällen weicht auch ihr Verhalten ab.
Konzeptionelle Unterschiede
In Visual Basic 6.0 werden Menu-Objekte mit dem Menü-Editor erstellt. Menu-Objekte sind an das Formular gebunden, für das sie erstellt werden, aber sie können zur Laufzeit geändert oder als Kontextmenüs angezeigt werden. Mit dem Menu-Objekt erstellte Menüs unterstützen an sich weder Schattierung oder Symbole noch eingebettete Steuerelemente. Es können nur flache Menüs im Stil von Windows 98 erstellt werden.
In Visual Basic 2008 wird das Menu-Objekt durch die MenuStrip-Komponente und die ContextMenuStrip-Komponente ersetzt. Menüs können zur Entwurfszeit mittels direkter Bearbeitung oder im Code erstellt werden. Mit der MenuStrip-Komponente und der ContextMenuStrip-Komponente können moderne Menüs im Stil der Office-Symbolleiste erstellt werden, die schattierte Bereiche, Symbole und eingebettete Steuerelemente, z. B. Dropdownlisten, unterstützen. Weitere Informationen finden Sie unter Übersicht über das MenuStrip-Steuerelement (Windows Forms).
Anzeigen von Kontextmenüs
In Visual Basic 6.0 kann ein Kontextmenü angezeigt werden, indem die PopupMenu-Methode aufgerufen und ein Menu-Objekt der obersten Ebene an sie übergeben wird. Wenn beispielsweise ein Bearbeiten-Menü mit dem Namen mnuEdit mit den Untermenüs Ausschneiden, Kopieren und Einfügen gegeben ist, kann durch einen Aufruf von PopupMenu mnuEdit ein Kontextmenü mit den Befehlen Ausschneiden, Kopieren und Einfügen angezeigt werden.
In Visual Basic 2008 werden Kontextmenüs mithilfe einer eigenen ContextMenuStrip-Komponente angezeigt. Es gibt keine Entsprechung für die PopupMenu-Methode, aber von einer MenuStrip-Komponente und einer ContextMenuStrip-Komponente können Befehle gemeinsam verwendet werden, wenn die ContextMenuStrip-Komponente zur Laufzeit erstellt wird und die Ereignishandler von beiden Komponenten gemeinsam genutzt werden.
Änderungen am Code für das Menu-Objekt
Im folgenden Beispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 dargestellt.
Änderungen am Code zum Anzeigen von Kontextmenüs
Im folgenden Code wird veranschaulicht, wie die Befehle Ausschneiden, Kopieren und Einfügen eines vorhandenen Bearbeiten-Menüs in einem Kontextmenü angezeigt werden.
' 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
' 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
Entsprechungen zwischen Eigenschaften und Methoden für Menüs
In den folgenden Tabellen werden Visual Basic 6.0-Eigenschaften und -Methoden zusammen mit ihren Visual Basic 2008-Entsprechungen aufgeführt. Die Eigenschaften und Methoden, die über den gleichen Namen und das gleiche Verhalten verfügen, werden dabei nicht berücksichtigt. Alle Visual Basic 2008-Enumerationen werden, sofern nicht anders angegeben, dem System.Windows.Forms-Namespace zugeordnet.
In dieser Tabelle werden Links zu Themen bereitgestellt, in denen Unterschiede im Verhalten erläutert werden. Wenn in Visual Basic 2008 keine direkte Entsprechung vorhanden ist, werden Links zu Themen bereitgestellt, die Alternativen behandeln.
Eigenschaften
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
Caption |
Text (MenuStripItem) |
HelpContextID |
Neue Implementierung. Weitere Informationen finden Sie unter Hilfeunterstützung für Visual Basic 6.0-Benutzer. |
Index |
Neue Implementierung. Weitere Informationen finden Sie unter der Index-Eigenschaft der ToolStripItemCollection-Klasse. |
NegotiatePosition |
Keine Entsprechung. Diese Eigenschaft wurde nur für die Verknüpfung und die Einbettung mit OLE verwendet. Beides wird nicht mehr unterstützt. |
Parent |
FindForm-Methode |
WindowList |
Methoden
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
PopupMenu |
Neue Implementierung. Verwenden Sie eine ContextMenuStrip-Komponente. |
Hinweise zum Durchführen einer Aktualisierung
Beim Aktualisieren einer Visual Basic 6.0-Anwendung auf Visual Basic 2008 werden Aufrufe der PopupMenu-Methode nicht aktualisiert. Stattdessen müssen Kontextmenüs erstellt werden.
Siehe auch
Konzepte
Menübehandlung für Visual Basic 6.0-Benutzer
Referenz
Übersicht über das MenuStrip-Steuerelement (Windows Forms)