Información detallada: más información acerca de los menús

Actualización: noviembre 2007

En esta lección, aprenderá a habilitar o deshabilitar menús en tiempo de ejecución, así como a crear menús emergentes.

En la lección anterior, aprendió a usar el control MenuStrip para crear menús que permitan a los usuarios elegir opciones relacionadas con el programa. Sin embargo, en ciertos casos, es posible que algunas opciones sólo estén disponibles en determinados momentos. Por ejemplo, un comando de menú Copiar sólo estará disponible si hay algo que se pueda copiar.

La mayoría de los programas deshabilitan, en lugar de ocultar, los comandos de menú cuando no están disponibles. Cuando un elemento de menú está deshabilitado, el texto del menú pasa a estar atenuado y, al hacer clic en el elemento de menú, no se realiza ninguna acción. Al utilizar un control MenuStrip, puede deshabilitar y habilitar elementos de menú mediante la propiedad Enabled de MenuItem.

¡Inténtelo!

Para deshabilitar o habilitar elementos de menú

  1. En el menú Archivo, haga clic en Nuevoproyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación de Windows Forms.

  3. En el cuadro Nombre, escriba Menus2 y haga clic en Aceptar.

    Se abrirá un nuevo proyecto de formularios Windows Forms.

  4. En el Cuadro de herramientas, arrastre un control MenuStrip y un control TextBox hasta el formulario.

  5. En el formulario, haga clic en el control MenuStrip y escriba Edit, a continuación, presione ENTRAR.

  6. En el cuadro situado bajo el primer cuadro, escriba Copy y presione ENTRAR.

  7. En la ventana Propiedades, establezca la propiedad Enabled de CopyToolStripMenuItem en False.

  8. Haga doble clic en el control TextBox para abrir el Editor de código.

  9. En el controlador del evento TextBox1_TextChanged, escriba el siguiente código.

    If Textbox1.Text <> "" Then
      CopyToolStripMenuItem.Enabled = True
    Else
      CopyToolStripMenuItem.Enabled = False
    End If
    
  10. Presione F5 para ejecutar el programa. Haga clic en el menú Edición; el elemento de menú Copiar estará deshabilitado. Escriba algún texto en el control TextBox y, a continuación, vuelva a hacer clic en el menú Edición; el elemento de menú Copiar estará ahora habilitado.

Crear menús emergentes

Muchos programas usan menús emergentes, también conocidos como menús contextuales, para facilitar el acceso a los comandos que se utilizan frecuentemente. El acceso a un menú contextual se obtiene haciendo clic con el botón secundario del mouse en un formulario o en un control en tiempo de ejecución. Puede crear sus propios menús contextuales en Visual Basic mediante un control ContextMenuStrip.

Al igual que sucede con el control MenuStrip, cuando arrastra un control ContextMenuStrip hasta un formulario, el control ContextMenuStrip aparece como un cuadro en la parte superior del formulario con el texto "Escriba aquí" en su interior, y se agrega un icono a la bandeja de componentes. A diferencia de MenuStrip, sólo pueden agregarse elementos adicionales debajo del primer elemento de menú, creándose un menú vertical.

Además, es necesario que ContextMenuStrip esté asociado al formulario o al control en el que desea que aparezca. Esto se realiza estableciendo la propiedad ContextMenuStrip del formulario o del control en el nombre del control ContextMenuStrip. Puede asociar un solo control ContextMenuStrip a tantos controles como desee.

Inténtelo

Para crear un menú contextual

  1. En el menú Archivo, elija Nuevo y haga clic en Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación de Windows Forms.

  3. En el cuadro Nombre, escriba ContextMenus y haga clic en Aceptar.

    Se abrirá un nuevo proyecto de formularios Windows Forms.

  4. En el Cuadro de herramientas, arrastre un control ContextMenuStrip hasta el formulario.

  5. Haga clic en el formulario en la vista Diseño. En la ventana Propiedades, seleccione la propiedad ContextMenuStrip del formulario y haga clic en ContextMenuStrip1 en la lista desplegable.

  6. En la bandeja de componentes, en la parte inferior del entorno de desarrollo integrado (IDE), haga clic en el control ContextMenuStrip En el objeto ContextMenuStrip, escriba Option1, y, a continuación, presione ENTRAR.

  7. En el cuadro situado bajo el primer cuadro, escriba Option2 y presione ENTRAR.

  8. Haga doble clic en el elemento de menú Option1 para abrir el Editor de código.

  9. En el controlador del evento Option1ToolStripMenuItem_Click, escriba el siguiente código.

    MsgBox("You chose Option 1")
    
  10. En el Editor de código, seleccione Option2ToolStripMenuItem en el cuadro desplegable izquierdo y, a continuación, elija Haga clic en en el cuadro desplegable derecho.

    Aparecerá un nuevo controlador de eventos denominado Option2ToolStripMenuItem _Click en el editor de código.

  11. En el controlador del evento Option2ToolStripMenuItem _Click, escriba el código siguiente:

    MsgBox("You chose Option 2")
    
  12. Presione F5 para ejecutar el programa. Haga clic con el botón secundario del mouse en el formulario y después en uno de los elementos del menú contextual. Aparece un cuadro de mensaje que indica la opción elegida.

Pasos siguientes

En esta lección, aprendió a habilitar y deshabilitar menús, así como a crear un menú contextual. En el tema siguiente, aprenderá a utilizar un tipo diferente de control, Timer, para realizar acciones.

Próxima lección: Usar controles Timer para realizar acciones regulares

Vea también

Tareas

Proporcionar opciones al usuario: crear menús en tiempo de diseño

Cómo: Asociar un objeto ContextMenuStrip con un control

Referencia

Información general sobre el control MenuStrip (formularios Windows Forms)