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

MdiWindowListItem

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)

Weitere Ressourcen

Windows Forms-Steuerelemente für Visual Basic 6.0-Benutzer