Partager via


Objet Menu pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

L'objet Menu dans Visual Basic 6.0 est remplacé par le contrôle MenuStrip ou ContextMenuStrip dans Visual Basic 2008. Les noms de certains événements, propriétés, méthodes et constantes ont changé. En outre, dans certains cas, leur comportement est également différent.

Différences conceptuelles

Dans Visual Basic 6.0, un objet Menu est créé à l'aide de l'Éditeur de menus. Les objets Menu sont liés au formulaire pour lequel ils sont créés, mais ils peuvent être modifiés au moment de l'exécution ou être affichés en tant que menus contextuels. Les menus créés avec l'objet Menu ne prennent pas en charge en mode natif l'ombrage, les icônes ou les contrôles incorporés ; seuls les menus Style "en deux dimensions" Windows 98 peuvent être créés.

Dans Visual Basic 2008, l'objet Menu est remplacé par les composants MenuStrip et ContextMenuStrip. Les menus peuvent être créés à l'aide de la modification sur place au moment du design ou dans le code. Les composants MenuStrip et ContextMenuStrip vous permettent de créer des menus Style modernes dans la barre d'outils Office, avec une prise en charge totale des régions ombragées, des icônes et des contrôles incorporés tels que des listes déroulantes. Pour plus d'informations, consultez Vue d'ensemble du contrôle MenuStrip (Windows Forms).

Affichage des menus contextuels

Dans Visual Basic 6.0, vous pouvez afficher un menu contextuel en appelant la méthode PopupMenu et en lui passant tout objet Menu de niveau supérieur. Par exemple, si vous avez un menu Modifier nommé mnuEdit avec des sous-menus Couper, Copier et Coller, vous pouvez afficher un menu contextuel avec les commandes Couper, Copier et Coller en appelant PopupMenu mnuEdit.

Dans Visual Basic 2008, les menus contextuels sont affichés à l'aide d'un composant ContextMenuStrip distinct. Il n'y a aucun équivalent pour la méthode PopupMenu, cependant, vous pouvez toujours partager des commandes entre un MenuStrip et un ContextMenuStrip en créant ContextMenuStrip au moment du design et en partageant des gestionnaires d'événements.

Modifications du code pour l'objet Menu

Les exemples ci-dessous illustrent les différences entre les techniques de codage dans Visual Basic 6.0 et dans Visual Basic 2008.

Modifications du code pour afficher des menus contextuels

Le code suivant illustre comment afficher les commandes Couper, Copier et Coller à partir d'un menu Modifier existant dans un menu contextuel.

' 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

Équivalences des propriétés et des méthodes de menu

Les tableaux ci-dessous répertorient les propriétés et les méthodes de Visual Basic 6.0, ainsi que leurs équivalents dans Visual Basic 2008. Les propriétés et les méthodes, qui ont des noms et des comportements identiques, ne sont pas répertoriées. Sauf indication contraire, toutes les énumérations Visual Basic 2008 sont mappées à l'espace de noms System.Windows.Forms.

Ce tableau fournit des liens vers les rubriques qui expliquent des différences de comportement. Lorsqu'il n'existe pas d'équivalent direct dans Visual Basic 2008, des liens vous renvoient vers des rubriques proposant des alternatives.

Propriétés

Visual Basic 6.0

Équivalent Visual Basic 2008

Caption

Text (MenuStripItem)

HelpContextID

Nouvelle implémentation. Pour plus d'informations, consultez Prise en charge de l'aide pour les utilisateurs de Visual Basic 6.0.

Index

Nouvelle implémentation. Consultez la propriété Index de la classe ToolStripItemCollection.

NegotiatePosition

Pas d'équivalent. Cette propriété n'était utilisée que pour la liaison et l'incorporation d'objets (OLE), qui ne sont plus prises en charge.

Parent

Méthode FindForm

WindowList

MdiWindowListItem

Méthodes

Visual Basic 6.0

Équivalent Visual Basic 2008

PopupMenu

Nouvelle implémentation. Utilisez un composant ContextMenuStrip.

Mettre à niveau des remarques

Lorsqu'une application Visual Basic 6.0 est mise à niveau vers Visual Basic 2008, les appels à la méthode PopupMenu ne sont pas mis à niveau ; vous devez créer des menus contextuels pour les remplacer.

Voir aussi

Concepts

Gestion des menus pour les utilisateurs de Visual Basic 6.0

Référence

Vue d'ensemble du contrôle MenuStrip (Windows Forms)

Autres ressources

Contrôles Windows Forms pour les utilisateurs de Visual Basic 6.0