IMenuCommandService Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona métodos para administrar los verbos globales del diseñador y los comandos de menú disponibles en modo de diseño, así como para mostrar algunos tipos de menús contextuales.
public interface class IMenuCommandService
public interface IMenuCommandService
[System.Runtime.InteropServices.ComVisible(true)]
public interface IMenuCommandService
type IMenuCommandService = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IMenuCommandService = interface
Public Interface IMenuCommandService
- Derivado
- Atributos
Ejemplos
En este ejemplo se muestra el uso de IMenuCommandService para agregar un MenuCommand.
public ref class CDesigner: public ComponentDesigner
{
public:
[PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
virtual void Initialize( IComponent^ comp ) override
{
ComponentDesigner::Initialize( comp );
IMenuCommandService^ mcs = static_cast<IMenuCommandService^>(comp->Site->GetService( IMenuCommandService::typeid ));
MenuCommand^ mc = gcnew MenuCommand( gcnew EventHandler( this, &CDesigner::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." );
}
};
}
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.");
}
}
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class CDesigner
Inherits System.ComponentModel.Design.ComponentDesigner
Public Overrides Sub Initialize(ByVal comp As IComponent)
MyBase.Initialize(comp)
Dim mcs As IMenuCommandService = CType(comp.Site.GetService(GetType(IMenuCommandService)), IMenuCommandService)
Dim mc As New MenuCommand(New EventHandler(AddressOf OnF1Help), StandardCommands.F1Help)
mc.Enabled = True
mc.Visible = True
mc.Supported = True
mcs.AddCommand(mc)
System.Windows.Forms.MessageBox.Show("Initialize() has been invoked.")
End Sub
Private Sub OnF1Help(ByVal sender As Object, ByVal e As EventArgs)
System.Windows.Forms.MessageBox.Show("F1Help has been invoked.")
End Sub
End Class
Comentarios
Esta interfaz proporciona métodos para:
Buscar, invocar, agregar y quitar comandos de verbo del diseñador global.
Buscar, invocar, agregar y quitar comandos de menú estándar.
Modifique los controladores de eventos asociados a los comandos de menú estándar.
Muestra un menú contextual de comandos estándar que está asociado a un menú CommandID.
Designer verbos representan comandos definidos por el personalizado que aparecen en el menú contextual en modo de diseño. Un verbo de diseñador puede proporcionar una etiqueta de texto especificada. A cada verbo del diseñador se le asigna automáticamente un valor único CommandID. Un diseñador puede proporcionar verbos de diseñador a través de su Verbs propiedad, pero solo están disponibles cuando el componente del diseñador está seleccionado actualmente. Los verbos del diseñador global son comandos de verbo del diseñador a los que se puede acceder 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 de diseñador global mediante el AddVerb método y puede quitar un verbo de diseñador global mediante el RemoveVerb método . Puede invocar un verbo de diseñador mediante el GlobalInvoke método si conoce el CommandID del verbo. La Verbs propiedad de esta interfaz contiene el conjunto actual de comandos de verbo del diseñador que se van a mostrar en un menú contextual. Este conjunto de comandos de verbo del diseñador consta de todos los verbos globales del diseñador y de todos los verbos de diseñador que ofrece el diseñador de cualquier componente seleccionado actualmente. Este conjunto de verbos se actualiza cada vez que se selecciona o se deselecciona un componente con un diseñador que ofrece comandos de verbo del diseñador.
Los comandos de menú se limitan al conjunto de comandos estándar predefinidos. La mayoría de los comandos estándar predefinidos se definen en las StandardCommands enumeraciones y MenuCommands . Puede agregar, quitar e invocar comandos de menú y buscar comandos de menú que se han agregado a un menú mediante 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 siguiendo el procedimiento detallado en la documentación del AddCommand método . Puede recuperar un comando de menú si CommandID se ha agregado a un menú mediante el FindCommand método . Puede invocar un comando de menú o un comando CommandID de verbo del diseñador mediante el GlobalInvoke método .
Nota
Un intento de agregar un comando de menú con un elemento ya existente CommandID producirá una InvalidOperationExceptionexcepción . Al agregar un comando de menú, asegúrese de comprobar que aún no está en un menú mediante el método o use el FindCommand control de excepciones de forma inteligente.
Nota
Se puede agregar un comando de menú a un menú y tener sus Visible propiedades o Enabled establecidas en false
. Si no encuentra visualmente un comando de menú que se ha agregado en un menú, es posible que una de estas propiedades se haya establecido false
en .
Puede mostrar determinados menús contextuales estándar que contienen comandos de menú en una ubicación especificada mediante el ShowContextMenu método . La documentación de este método contiene una tabla que muestra los identificadores de comando que especifican los menús válidos que se van a mostrar.
Propiedades
Verbs |
Obtiene una colección de los verbos de diseñador que están disponibles actualmente. |
Métodos
AddCommand(MenuCommand) |
Agrega el comando de menú estándar especificado al menú. |
AddVerb(DesignerVerb) |
Agrega el verbo del diseñador especificado al conjunto de verbos globales del diseñador. |
FindCommand(CommandID) |
Busca el identificador de comando especificado y devuelve el comando de menú asociado. |
GlobalInvoke(CommandID) |
Invoca a un comando de menú o de verbo del diseñador que coincida con el identificador de comando especificado. |
RemoveCommand(MenuCommand) |
Quita el comando de menú estándar especificado del menú. |
RemoveVerb(DesignerVerb) |
Quita el verbo del diseñador especificado del conjunto de verbos globales del diseñador. |
ShowContextMenu(CommandID, Int32, Int32) |
Muestra el menú contextual especificado en la ubicación especificada. |