Objeto Menu para usuarios de Visual Basic 6.0
Actualización: noviembre 2007
El objeto Menu de Visual Basic 6.0 se reemplaza por el control MenuStrip o ContextMenuStrip en Visual Basic 2008. Los nombres de algunas propiedades, métodos, eventos y constantes son diferentes y, en algunos casos, existen diferencias de comportamiento.
Diferencias conceptuales
En Visual Basic 6.0, se crea un objeto Menu mediante el Editor de menús. Los objetos Menu están vinculados al formulario para el que se han creado pero se pueden modificar en tiempo de ejecución o mostrar como menús contextuales. Los menús creados con el objeto Menu no admiten de forma nativa sombreado, iconos o controles incrustados; sólo se pueden crear menús de estilo "sencillo" de Windows 98.
En Visual Basic 2008, el objeto Menu se reemplaza por los componentes MenuStrip y ContextMenuStrip. Los menús se pueden crear en tiempo de diseño utilizando la edición en contexto o se pueden crear en código. Los componentes MenuStrip y ContextMenuStrip permiten crear modernos menús de estilo barra de herramientas de Office, con compatibilidad completa para áreas sombreadas, iconos y controles incrustados como listas desplegables. Para obtener más información, vea Información general sobre el control MenuStrip (formularios Windows Forms).
Mostrar menús contextuales
En Visual Basic 6.0, puede mostrar un menú contextual llamando al método PopupMenu y pasándole cualquier objeto Menu de nivel superior. Por ejemplo, si tiene un menú Edición denominado mnuEdit con submenús Cortar, Copiar y Pegar, puede mostrar un menú contextual con los comandos Cortar, Copiar y Pegar llamando a PopupMenu mnuEdit.
En Visual Basic 2008, los menús contextuales se muestran mediante un componente ContextMenuStrip independiente. No hay equivalente para el método PopupMenu, no obstante, puede seguir compartiendo comandos entre MenuStrip y ContextMenuStrip al crear ContextMenuStrip en tiempo de diseño y al compartir controladores de eventos.
Cambios de código para el objeto Menu
En los ejemplos siguientes se muestran las diferencias entre las técnicas de codificación de Visual Basic 6.0 y Visual Basic 2008.
Cambios de código para mostrar menús contextuales
El código siguiente muestra cómo mostrar los comandos Cortar, Copiar y Pegar en un menú Edición existente en un menú contextual.
' 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
Equivalencias de métodos y propiedades de menús
En las siguientes tablas se enumeran propiedades y métodos de Visual Basic 6.0, junto con sus equivalentes en Visual Basic 2008. No se enumeran aquellas propiedades y métodos que tienen el mismo nombre y comportamiento. Salvo que se indique lo contrario, todas las enumeraciones de Visual Basic 2008 se asignan al espacio de nombres System.Windows.Forms.
Esta tabla proporciona vínculos a temas que explican las diferencias de comportamiento. Cuando no existe un equivalente directo en Visual Basic 2008, se proporcionan vínculos a temas en los que se incluyen alternativas.
Propiedades
Visual Basic 6.0 |
Equivalente en Visual Basic 2008 |
---|---|
Caption |
Text (MenuStripItem) |
HelpContextID |
Nueva implementación. Para obtener más información, vea Compatibilidad con la Ayuda para usuarios de Visual Basic 6.0. |
Index |
Nueva implementación. Llame a la propiedad Index de la clase ToolStripItemCollection. |
NegotiatePosition |
No hay equivalente. Esta propiedad sólo se utilizaba para la vinculación e incrustación de objetos OLE que ya no se admite. |
Parent |
FindForm (método) |
WindowList |
Métodos
Visual Basic 6.0 |
Equivalente en Visual Basic 2008 |
---|---|
PopupMenu |
Nueva implementación. Utilice un componente ContextMenuStrip. |
Notas de actualización
Cuando se actualiza una aplicación de Visual Basic 6.0 a Visual Basic 2008, no se actualiza ninguna llamada al método PopupMenu; debe crear menús contextuales para reemplazarlas.
Vea también
Conceptos
Control de menús para usuarios de Visual Basic 6.0
Referencia
Información general sobre el control MenuStrip (formularios Windows Forms)
Otros recursos
Controles de formularios Windows Forms para usuarios de Visual Basic 6.0