IMenuCommandService インターフェイス

定義

グローバル デザイナー動詞とデザイン モードで使用できるメニュー コマンドを管理し、いくつかの種類のショートカット メニューを表示するためのメソッドを提供します。

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
派生
属性

この例では、 を使用して IMenuCommandService を追加する方法を 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

注釈

このインターフェイスには、次のメソッドが用意されています。

  • グローバル デザイナー動詞コマンドを検索、呼び出し、追加、および削除します。

  • 標準メニュー コマンドを検索、呼び出し、追加、削除します。

  • 標準メニュー コマンドに関連付けられているイベント ハンドラーを変更します。

  • メニュー に関連付けられている標準コマンドのショートカット メニューを表示します CommandID

Designer動詞は、デザイン モードでショートカット メニューに表示されるカスタム定義コマンドを表します。 デザイナー動詞は、指定されたテキスト ラベルを提供できます。 各デザイナー動詞には、一意 CommandIDの が自動的に割り当てられます。 デザイナーは、その Verbs プロパティを使用してデザイナー動詞を提供できますが、これらはデザイナーのコンポーネントが現在選択されている場合にのみ使用できます。 グローバル デザイナー動詞は、選択したコンポーネントに関係なく、デザイン モードのショートカット メニューからアクセスできるデザイナー動詞コマンドです。 このインターフェイスを使用すると、デザイン モードで使用できるグローバル デザイナー動詞のセットを管理できます。

メソッドを使用してグローバル デザイナー動詞を AddVerb 追加したり、 メソッドを使用してグローバル デザイナー動詞を RemoveVerb 削除したりできます。 動詞の がわかっている場合は、 メソッドを GlobalInvoke 使用してデザイナー動詞を CommandID 呼び出すことができます。 このインターフェイスの プロパティには Verbs 、ショートカット メニューに表示するデザイナー動詞コマンドの現在のセットが含まれています。 このデザイナー動詞コマンドのセットは、すべてのグローバル デザイナー動詞と、現在選択されているコンポーネントのデザイナーによって提供されるすべてのデザイナー動詞で構成されます。 この一連の動詞は、デザイナーの動詞コマンドを提供するデザイナーが含まれたコンポーネントが選択または選択解除されるたびに更新されます。

メニュー コマンドは、定義済みの標準コマンドのセットに制限されます。 定義済みの標準コマンドのほとんどは、 および MenuCommands 列挙でStandardCommands定義されています。 メニュー コマンドを追加、削除、および呼び出し、このインターフェイスのメソッドを使用してメニューに追加されたメニュー コマンドを検索できます。

メソッドを使用して標準メニュー コマンドを AddCommand 追加し、 メソッドを使用して標準メニュー コマンドを RemoveCommand 削除できます。 メソッドのドキュメントで詳しく説明されている手順に従って、定義済みの標準メニュー コマンドにイベント ハンドラーを AddCommand アタッチできます。 メニュー コマンドは、 メソッドを使用してFindCommandメニューに追加されている場合にCommandID取得できます。 メソッドを使用して CommandID 、メニュー コマンドまたはデザイナー動詞コマンドを GlobalInvoke 呼び出すことができます。

注意

既に存在 CommandID する メニュー コマンドを追加しようとすると、 InvalidOperationExceptionがスローされます。 メニュー コマンドを追加するときは、 メソッドを使用してFindCommandメニューにまだ存在しないことをチェックするか、例外処理を適切に使用してください。

注意

メニュー コマンドをメニューに追加し、その Visible または Enabled プロパティを に false設定できます。 メニューに追加されたメニュー コマンドが視覚的に見つからない場合は、これらのプロパティのいずれかが に false設定されている可能性があります。

メソッドを使用すると、指定した場所にメニュー コマンドを含む特定の標準ショートカット メニューを ShowContextMenu 表示できます。 このメソッドのドキュメントには、表示する有効なメニューを指定するコマンド ID を一覧表示するテーブルが含まれています。

プロパティ

Verbs

現在使用できるデザイナー動詞のコレクションを取得します。

メソッド

AddCommand(MenuCommand)

指定した標準メニュー コマンドをメニューに追加します。

AddVerb(DesignerVerb)

指定したデザイナー動詞をグローバル デザイナー動詞のセットに追加します。

FindCommand(CommandID)

指定したコマンド ID を検索し、その ID に関連付けられているメニュー コマンドを返します。

GlobalInvoke(CommandID)

指定したコマンド ID に一致するメニューまたはデザイナー動詞コマンドを呼び出します。

RemoveCommand(MenuCommand)

指定した標準メニュー コマンドをメニューから削除します。

RemoveVerb(DesignerVerb)

指定したデザイナー動詞をグローバル デザイナー動詞のコレクションから削除します。

ShowContextMenu(CommandID, Int32, Int32)

指定した位置に指定したショートカット メニューを表示します。

適用対象

こちらもご覧ください