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 |
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