Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Interfaz IMenuCommandService

 

Publicado: octubre de 2016

Proporciona métodos para administrar los verbos globales del diseñador y los comandos de menú disponibles en modo de diseño y para mostrar algunos tipos de menús contextuales.

Espacio de nombres:   System.ComponentModel.Design
Ensamblado:  System (en System.dll)

[ComVisibleAttribute(true)]
public interface IMenuCommandService

NombreDescripción
System_CAPS_pubpropertyVerbs

Obtiene una colección de los verbos de diseñador que están actualmente disponibles.

NombreDescripción
System_CAPS_pubmethodAddCommand(MenuCommand)

Agrega el comando de menú estándar especificado al menú.

System_CAPS_pubmethodAddVerb(DesignerVerb)

Agrega el verbo del diseñador especificado al conjunto de verbos globales del diseñador.

System_CAPS_pubmethodFindCommand(CommandID)

Busca el identificador de comando especificado y devuelve el comando de menú asociado a él.

System_CAPS_pubmethodGlobalInvoke(CommandID)

Invoca un comando de verbo del menú o el diseñador que coinciden con el identificador del comando especificado.

System_CAPS_pubmethodRemoveCommand(MenuCommand)

Quita el comando de menú estándar especificado en el menú.

System_CAPS_pubmethodRemoveVerb(DesignerVerb)

Quita el verbo del diseñador especificado de la colección de verbos globales del diseñador.

System_CAPS_pubmethodShowContextMenu(CommandID, Int32, Int32)

Muestra el menú contextual especificado en la ubicación especificada.

Esta interfaz proporciona métodos para:

  • Buscar, invocar, agregar y quitar comandos de verbo global del diseñador.

  • Buscar, invocar, agregar y quitar comandos de menú estándar.

  • Modificar los controladores de eventos asociados a comandos de menú estándar.

  • Mostrar un menú contextual de comandos estándar que está asociado a un menú CommandID.

Verbos de diseñador representan comandos personalizados que aparecen en el menú contextual en modo de diseño. Un verbo del diseñador puede proporcionar una etiqueta de texto especificado. Cada verbo del diseñador se le asigna automáticamente un único CommandID. Un diseñador puede proporcionar verbos del diseñador mediante su Verbs propiedad, pero estos sólo están disponibles cuando el componente del diseñador está seleccionado actualmente. Verbos globales del diseñador son comandos de verbo del diseñador que pueden obtenerse acceso desde un menú contextual en modo de diseño, independientemente del componente seleccionado. Esta interfaz permite administrar el conjunto de verbos globales del diseñador que están disponibles en modo de diseño.

Puede agregar un verbo global del diseñador mediante la AddVerb método y se puede quitar un verbo global del diseñador utilizando la RemoveVerb (método). Puede invocar un verbo de diseñador utilizando la GlobalInvoke método si sabe el CommandID del verbo. El Verbs propiedad de esta interfaz contiene el conjunto actual de comandos de verbo del diseñador para mostrar en un menú contextual. Este conjunto de comandos de verbo del diseñador está formado por todos los verbos globales del diseñador y los verbos de diseñador proporcionados por el Diseñador de cualquier componente seleccionado actualmente. Este conjunto de verbos se actualiza cada vez que se selecciona o anula la selección de un componente con un diseñador que ofrece comandos de verbo del diseñador.

Comandos de menú se limitan al conjunto de comandos estándar predefinidos. La mayoría de los comandos estándares predefinidos se definen en el StandardCommands y MenuCommands enumeraciones. Puede agregar, quitar, invocar comandos de menú y buscar los comandos de menú que se han agregado a un menú mediante los métodos de esta interfaz.

Puede agregar un comando de menú estándar mediante el AddCommand método y quitar un comando de menú estándar mediante el RemoveCommand método. Puede adjuntar un controlador de eventos a un comando de menú estándar predefinido, siga el procedimiento detallado en la documentación de la AddCommand (método). Puede recuperar un comando de menú por CommandID Si se ha agregado a un menú mediante el FindCommand método. Puede invocar un comando de menú o un comando de verbo del diseñador mediante CommandID utilizando la GlobalInvoke (método).

System_CAPS_noteNota

Intento de agregar un comando de menú con una ya existente CommandID producirá un InvalidOperationException. Al agregar un comando de menú, asegúrese de comprobar que aún no está en un menú con el FindCommand método o utilice excepciones con cuidado.

System_CAPS_noteNota

Un comando de menú se pueden agregar a un menú y tienen su Visible o Enabled propiedades establecidas en false. Si no encuentra un comando de menú que se ha agregado en un menú, una de estas propiedades que se han establecido false.

Puede mostrar determinados menús contextuales que contienen comandos de menú en una ubicación especificada utilizando el ShowContextMenu método. La documentación de este método contiene una tabla que enumera los identificadores de comando que especifican los menús válidos para mostrar.

En este ejemplo se muestra cómo utilizar el IMenuCommandService para agregar una MenuCommand.

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
public class CDesigner : System.ComponentModel.Design.ComponentDesigner 
{
    public override void Initialize(IComponent comp) 
    {
        base.Initialize(comp);

        IMenuCommandService mcs = (IMenuCommandService)comp.Site.
                    GetService(typeof(IMenuCommandService));
        MenuCommand mc = new MenuCommand(new EventHandler(OnF1Help), StandardCommands.F1Help);
        mc.Enabled = true;
        mc.Visible = true;
        mc.Supported = true;
        mcs.AddCommand(mc);
        System.Windows.Forms.MessageBox.Show("Initialize() has been invoked.");
    }

    private void OnF1Help(object sender, EventArgs e) 
    {
        System.Windows.Forms.MessageBox.Show("F1Help has been invoked.");
    }
}

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: