Esta documentación está archivada y no tiene mantenimiento.

ContextMenuStrip (Clase)

Representa un menú contextual.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class ContextMenuStrip : ToolStripDropDownMenu
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class ContextMenuStrip extends ToolStripDropDownMenu
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class ContextMenuStrip extends ToolStripDropDownMenu
No aplicable.

ContextMenuStrip reemplaza ContextMenu. Puede asociar un objeto ContextMenuStrip a cualquier control y, al hacer clic con el botón secundario del mouse, se muestra automáticamente el menú contextual. Puede mostrar ContextMenuStrip mediante programación utilizando el método Show. ContextMenuStrip admite eventos Opening y Closing, que se pueden cancelar, para controlar escenarios de relleno dinámico y uso de varios clic. ContextMenuStrip admite imágenes, el estado de activación de elementos de menú, texto, teclas de acceso, accesos directos y menús en cascada.

Los elementos siguientes están diseñados específicamente para trabajar sin problemas con ToolStripSystemRenderer y ToolStripProfessionalRenderer en todas las orientaciones. Están disponibles de forma predeterminada en tiempo de diseño para el control ContextMenuStrip:

Los menús contextuales suelen utilizarse para combinar los distintos elementos de menú desde un MenuStrip de un formulario que son útiles para el usuario dado el contexto de la aplicación. Por ejemplo, se puede usar un menú contextual asignado a un control TextBox para proporcionar elementos de menú que permitan cambiar la fuente del texto, buscar texto en el control, o funciones del Portapapeles para copiar y pegar texto. En un menú contextual, también se pueden mostrar nuevos objetos ToolStripMenuItem que no se encuentren en un control MenuStrip para proporcionar comandos específicos de la situación, que no sería lógico incluir en el control MenuStrip que se va a mostrar.

Normalmente, el menú contextual aparece cuando el usuario hace clic con el botón secundario del mouse en un control o en el propio formulario. Muchos de los controles visibles, además de los propios controles Form, tienen una propiedad Control.ContextMenuStrip que enlaza la clase ContextMenuStrip con el control que muestra el menú contextual. Más de un control puede usar ContextMenuStrip.

Establezca la propiedad ToolStripDropDownMenu.ShowCheckMargin en true para agregar espacio a la izquierda de un objeto ToolStripMenuItem e incluir una marca de verificación que indique si dicho elemento de menú está habilitado o seleccionado. La propiedad ToolStripDropDownMenu.ShowImageMargin se establece en true de manera predeterminada. Utilice este espacio situado a la izquierda del objeto ToolStripMenuItem para mostrar una imagen para dicho elemento de menú.

Aunque ContextMenuStrip reemplaza al control ContextMenu de las versiones anteriores y su funcionalidad es mayor, el control ContextMenu se ha mantenido para preservar la compatibilidad con las versiones anteriores y para que pueda utilizarse en el futuro, si así se desea.

En el ejemplo de código siguiente se muestra un ContextMenuStrip con adición de elementos dinámica, determinación dinámica de SourceControl con reuso y control del evento Opening.

// This code example demonstrates how to handle the Opening event.
// It also demonstrates dynamic item addition and dynamic 
// SourceControl determination with reuse.
class Form3 : Form
{
    // Declare the ContextMenuStrip control.
    private ContextMenuStrip fruitContextMenuStrip;

    public Form3()
    {
        // Create a new ContextMenuStrip control.
        fruitContextMenuStrip = new ContextMenuStrip();

        // Attach an event handler for the 
        // ContextMenuStrip control's Opening event.
        fruitContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(cms_Opening);

        // Create a new ToolStrip control.
        ToolStrip ts = new ToolStrip();

        // Create a ToolStripDropDownButton control and add it
        // to the ToolStrip control's Items collections.
        ToolStripDropDownButton fruitToolStripDropDownButton = new ToolStripDropDownButton("Fruit", null, null, "Fruit");
        ts.Items.Add(fruitToolStripDropDownButton);

        // Dock the ToolStrip control to the top of the form.
        ts.Dock = DockStyle.Top;

        // Assign the ContextMenuStrip control as the 
        // ToolStripDropDownButton control's DropDown menu.
        fruitToolStripDropDownButton.DropDown = fruitContextMenuStrip;

        // Create a new MenuStrip control and add a ToolStripMenuItem.
        MenuStrip ms = new MenuStrip();
        ToolStripMenuItem fruitToolStripMenuItem = new ToolStripMenuItem("Fruit", null, null, "Fruit");
        ms.Items.Add(fruitToolStripMenuItem);

        // Dock the MenuStrip control to the top of the form.
        ms.Dock = DockStyle.Top;

        // Assign the MenuStrip control as the 
        // ToolStripMenuItem's DropDown menu.
        fruitToolStripMenuItem.DropDown = fruitContextMenuStrip;

        // Assign the ContextMenuStrip to the form's 
        // ContextMenuStrip property.
        this.ContextMenuStrip = fruitContextMenuStrip;

        // Add the ToolStrip control to the Controls collection.
        this.Controls.Add(ts);

        //Add a button to the form and assign its ContextMenuStrip.
        Button b = new Button();
        b.Location = new System.Drawing.Point(60, 60);
        this.Controls.Add(b);
        b.ContextMenuStrip = fruitContextMenuStrip;

        // Add the MenuStrip control last.
        // This is important for correct placement in the z-order.
        this.Controls.Add(ms);
    }

    // This event handler is invoked when the ContextMenuStrip
    // control's Opening event is raised. It demonstrates
    // dynamic item addition and dynamic SourceControl 
    // determination with reuse.
    void cms_Opening(object sender, System.ComponentModel.CancelEventArgs e)
    {
        // Acquire references to the owning control and item.
        Control c = fruitContextMenuStrip.SourceControl as Control;
        ToolStripDropDownItem tsi = fruitContextMenuStrip.OwnerItem as ToolStripDropDownItem;

        // Clear the ContextMenuStrip control's Items collection.
        fruitContextMenuStrip.Items.Clear();

        // Check the source control first.
        if (c != null)
        {
            // Add custom item (Form)
            fruitContextMenuStrip.Items.Add("Source: " + c.GetType().ToString());
        }
        else if (tsi != null)
        {
            // Add custom item (ToolStripDropDownButton or ToolStripMenuItem)
            fruitContextMenuStrip.Items.Add("Source: " + tsi.GetType().ToString());
        }

        // Populate the ContextMenuStrip control with its default items.
        fruitContextMenuStrip.Items.Add("-");
        fruitContextMenuStrip.Items.Add("Apples");
        fruitContextMenuStrip.Items.Add("Oranges");
        fruitContextMenuStrip.Items.Add("Pears");

        // Set Cancel to false. 
        // It is optimized to true based on empty entry.
        e.Cancel = false;
    }
}

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.ScrollableControl
           System.Windows.Forms.ToolStrip
             System.Windows.Forms.ToolStripDropDown
               System.Windows.Forms.ToolStripDropDownMenu
                System.Windows.Forms.ContextMenuStrip

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: