IMenuCommandService インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
デザイン モードで使用できるグローバル デザイナーの動詞とメニュー コマンドを管理し、いくつかの種類のショートカット メニューを表示するメソッドを提供します。
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に関連付けられている標準コマンドのショートカット メニューを表示します。
デザイナー動詞は、デザイン モードのショートカット メニューに表示されるカスタム定義コマンドを表します。 デザイナー動詞は、指定されたテキスト ラベルを提供できます。 各デザイナー動詞には、一意の CommandIDが自動的に割り当てられます。 デザイナーは、 Verbs プロパティを通じてデザイナー動詞を提供できますが、これらはデザイナーのコンポーネントが現在選択されている場合にのみ使用できます。 グローバル デザイナー動詞は、選択したコンポーネントに関係なく、デザイン モードのショートカット メニューからアクセスできるデザイナー動詞コマンドです。 このインターフェイスを使用すると、デザイン モードで使用できるグローバル デザイナー動詞のセットを管理できます。
AddVerb メソッドを使用してグローバル デザイナー動詞を追加したり、RemoveVerb メソッドを使用してグローバル デザイナー動詞を削除したりできます。 動詞のCommandIDがわかっている場合は、GlobalInvoke メソッドを使用してデザイナー動詞を呼び出すことができます。 このインターフェイスの Verbs プロパティには、ショートカット メニューに表示するデザイナー動詞コマンドの現在のセットが含まれています。 このデザイナー動詞コマンドのセットは、すべてのグローバル デザイナー動詞と、現在選択されているコンポーネントのデザイナーによって提供されるすべてのデザイナー動詞で構成されます。 この動詞のセットは、デザイナーの動詞コマンドを提供するデザイナーが含まれたコンポーネントが選択または選択解除されるたびに更新されます。
メニュー コマンドは、定義済みの標準コマンドのセットに限定されます。 定義済みの標準コマンドのほとんどは、 StandardCommands および MenuCommands 列挙型で定義されています。 メニュー コマンドを追加、削除、および呼び出し、このインターフェイスのメソッドを使用してメニューに追加されたメニュー コマンドを検索できます。
AddCommand メソッドを使用して標準メニュー コマンドを追加し、RemoveCommand メソッドを使用して標準メニュー コマンドを削除できます。 AddCommand メソッドのドキュメントで詳しく説明されている手順に従って、定義済みの標準メニュー コマンドにイベント ハンドラーをアタッチできます。 FindCommand メソッドを使用してメニューに追加されている場合は、メニュー コマンドをCommandIDして取得できます。 GlobalInvoke メソッドを使用してCommandIDすると、メニュー コマンドまたはデザイナー動詞コマンドを呼び出すことができます。
注
既存の CommandID を使用してメニュー コマンドを追加しようとすると、 InvalidOperationExceptionがスローされます。 メニュー コマンドを追加するときは、 FindCommand メソッドを使用してメニューにまだ存在していないことを確認するか、例外処理を賢明に使用してください。
注
メニュー コマンドをメニューに追加し、その Visible または Enabled プロパティを falseに設定できます。 メニューに追加されたメニュー コマンドを視覚的に見つけることができない場合は、これらのプロパティのいずれかが false に設定されている可能性があります。
ShowContextMenu メソッドを使用して、指定した場所にメニュー コマンドを含む特定の標準ショートカット メニューを表示できます。 このメソッドのドキュメントには、表示する有効なメニューを指定するコマンド ID を一覧表示するテーブルが含まれています。
プロパティ
| 名前 | 説明 |
|---|---|
| Verbs |
現在使用できるデザイナー動詞のコレクションを取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| AddCommand(MenuCommand) |
指定した標準メニュー コマンドをメニューに追加します。 |
| AddVerb(DesignerVerb) |
指定したデザイナー動詞をグローバル デザイナー動詞のセットに追加します。 |
| FindCommand(CommandID) |
指定したコマンド ID を検索し、それに関連付けられているメニュー コマンドを返します。 |
| GlobalInvoke(CommandID) |
指定したコマンド ID に一致するメニューまたはデザイナー動詞コマンドを呼び出します。 |
| RemoveCommand(MenuCommand) |
指定した標準メニュー コマンドをメニューから削除します。 |
| RemoveVerb(DesignerVerb) |
グローバル デザイナー動詞のコレクションから、指定したデザイナー動詞を削除します。 |
| ShowContextMenu(CommandID, Int32, Int32) |
指定した場所にある指定したショートカット メニューを表示します。 |