Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

Objeto Menu para usuarios de Visual Basic 6.0

El objeto Menu de Visual Basic 6.0 se ha reemplazado por el control MenuStrip o el control ContextMenuStrip en Visual Basic 2005. 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 2005, los componentes MenuStrip y ContextMenuStrip reemplazan al objeto Menu. 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 2005, 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

Los ejemplos siguientes muestran las diferencias de las técnicas de codificación entre Visual Basic 6.0 y Visual Basic 2005.

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 2005
' 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 2005. 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 2005 se asignan al espacio de nombres System.Windows.Forms.

Esta tabla proporciona vínculos a temas que explican las diferencias de comportamiento. Cuando no hay equivalente directo en Visual Basic 2005, se proporcionan vínculos a temas que presentan alternativas.

Propiedades

Visual Basic 6.0 Equivalente de Visual Basic 2005

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

MdiWindowListItem

Métodos

Visual Basic 6.0 Equivalente de Visual Basic 2005

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 2005, no se actualiza ninguna llamada al método PopupMenu; debe crear menús contextuales para reemplazarlos.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft