IMenuCommandService Schnittstelle

Definition

Stellt Methoden bereit, mit denen Sie die im Entwurfsmodus verfügbaren globalen Designerverben und Menübefehle verwalten sowie einige Typen von Kontextmenüs anzeigen können.

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
Abgeleitet
Attribute

Beispiele

In diesem Beispiel wird die Verwendung von IMenuCommandService zum Hinzufügen eines MenuCommandveranschaulicht.

   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

Hinweise

Diese Schnittstelle bietet Methoden für Folgendes:

  • Suchen, Aufrufen, Hinzufügen und Entfernen von Befehlen für globale Designerverben.

  • Suchen, Aufrufen, Hinzufügen und Entfernen von Standardmenübefehlen.

  • Ändern Sie die Ereignishandler, die Standardmenübefehlen zugeordnet sind.

  • Zeigt ein Kontextmenü mit Standardbefehlen an, das einem Menü CommandIDzugeordnet ist.

Designer Verben stellen benutzerdefinierte Befehle dar, die im Entwurfsmodus im Kontextmenü aufgeführt werden. Ein Designerverb kann eine angegebene Textbezeichnung bereitstellen. Jedem Designerverb wird automatisch ein eindeutiges CommandIDzugewiesen. Ein Designer kann Designerverben über seine Verbs -Eigenschaft bereitstellen, diese sind jedoch nur verfügbar, wenn die Komponente des Designers derzeit ausgewählt ist. Globale Designerverben sind Designerverbbefehle, auf die unabhängig von der ausgewählten Komponente über ein Kontextmenü im Entwurfsmodus zugegriffen werden kann. Mit dieser Schnittstelle können Sie den Satz von globalen Designerverben verwalten, die im Entwurfsmodus verfügbar sind.

Sie können mithilfe der AddVerb -Methode ein globales Designerverb hinzufügen und ein globales Designerverb mithilfe der RemoveVerb -Methode entfernen. Sie können ein Designerverb mit der GlobalInvoke -Methode aufrufen, wenn Sie den CommandID des Verbs kennen. Die Verbs -Eigenschaft dieser Schnittstelle enthält den aktuellen Satz von Designer-Verbbefehlen, die in einem Kontextmenü angezeigt werden sollen. Dieser Satz von Designer-Verbbefehlen besteht aus allen globalen Designerverben und allen Designerverben, die vom Designer einer derzeit ausgewählten Komponente angeboten werden. Dieser Satz von Verben wird jedes Mal aktualisiert, wenn eine Komponente mit einem Designer, der Designer-Verbbefehle anbietet, ausgewählt oder deaktiviert wird.

Menübefehle sind auf den Satz vordefinierter Standardbefehle beschränkt. Die meisten vordefinierten Standardbefehle sind in den StandardCommands Enumerationen und MenuCommands definiert. Sie können Menübefehle hinzufügen, entfernen und aufrufen sowie nach Menübefehlen suchen, die einem Menü hinzugefügt wurden, indem Sie Methoden dieser Schnittstelle verwenden.

Sie können einen Standardmenübefehl mithilfe der AddCommand -Methode hinzufügen und einen Standardmenübefehl mithilfe der RemoveCommand -Methode entfernen. Sie können einen Ereignishandler an einen vordefinierten Standardmenübefehl anfügen, indem Sie das in der Dokumentation für die AddCommand -Methode beschriebene Verfahren befolgen. Sie können einen Menübefehl mithilfe der FindCommand -Methode abrufen, wenn CommandID er einem Menü hinzugefügt wurde. Sie können einen Menübefehl oder einen Designerverbbefehl CommandID mit der GlobalInvoke -Methode aufrufen.

Hinweis

Ein Versuch, einen Menübefehl mit einem bereits vorhandenen CommandID hinzuzufügen, löst eine aus InvalidOperationException. Stellen Sie beim Hinzufügen eines Menübefehls sicher, dass er sich nicht bereits in einem Menü befindet, indem Sie die -Methode verwenden, oder verwenden Sie die FindCommand Ausnahmebehandlung mit Bedacht.

Hinweis

Ein Menübefehl kann einem Menü hinzugefügt werden, dessen Visible Eigenschaften oder Enabled auf falsefestgelegt sind. Wenn Sie einen Menübefehl, der einem Menü hinzugefügt wurde, visuell nicht finden können, wurde möglicherweise eine dieser Eigenschaften auf falsefestgelegt.

Mithilfe der ShowContextMenu -Methode können Sie bestimmte Standardverknüpfungsmenüs mit Menübefehlen an einer bestimmten Position anzeigen. Die Dokumentation für diese Methode enthält eine Tabelle mit den Befehls-IDs, die die gültigen anzuzeigenden Menüs angeben.

Eigenschaften

Verbs

Ruft eine Auflistung der aktuell verfügbaren Designerverben ab.

Methoden

AddCommand(MenuCommand)

Fügt dem Menü den angegebenen Standardmenübefehl hinzu.

AddVerb(DesignerVerb)

Fügt das angegebene Designerverb der Gruppe der globalen Designerverben hinzu.

FindCommand(CommandID)

Sucht nach der angegebenen Befehls-ID und gibt den zugeordneten Menübefehl zurück.

GlobalInvoke(CommandID)

Ruft einen der angegebenen Befehls-ID entsprechenden Menübefehl oder Designerverbbefehl auf.

RemoveCommand(MenuCommand)

Entfernt den angegebenen Standardmenübefehl aus dem Menü.

RemoveVerb(DesignerVerb)

Entfernt das angegebene Designerverb aus der Auflistung von globalen Designerverben.

ShowContextMenu(CommandID, Int32, Int32)

Zeigt das angegebene Kontextmenü an der angegebenen Position an.

Gilt für:

Weitere Informationen