MenuCommand クラス
Windows メニューまたはツール バーのコマンド項目を表します。
名前空間: System.ComponentModel.Design
アセンブリ: System (system.dll 内)
構文
'宣言
<ComVisibleAttribute(True)> _
Public Class MenuCommand
'使用
Dim instance As MenuCommand
[ComVisibleAttribute(true)]
public class MenuCommand
[ComVisibleAttribute(true)]
public ref class MenuCommand
/** @attribute ComVisibleAttribute(true) */
public class MenuCommand
ComVisibleAttribute(true)
public class MenuCommand
解説
MenuCommand クラスは、Windows のメニューまたはツール バーのコマンドに関する情報を表します。IMenuCommandService インターフェイスを使用すると、MenuCommand オブジェクトを Visual Studio .NET のメニューに追加できます。
このクラスは、次のメンバを提供します。
コマンドのイベント ハンドラと結び付けることができるイベント ハンドラ プロパティ。
コマンドを一意に識別する CommandID プロパティ。
コマンドを実行する Invoke メソッド。
新しいコマンドが選択されたときに発生するイベントを処理するためにオーバーライドできる OnCommandChanged メソッド。
コマンドが Checked、Enabled、Supported、または Visible のいずれの状態であるかを示すブール値のフラグ。
コマンドの OLE コマンド ステータス コードを示す OleStatus プロパティ。
ToString メソッドのオーバーライド。
注意
このクラスに適用される HostProtectionAttribute 属性の Resources プロパティの値は、SharedState です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的には、アイコンをダブルクリック、コマンドを入力、またはブラウザに URL を入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラスのトピックまたは「SQL Server プログラミングとホスト保護属性」を参照してください。
使用例
MenuCommand オブジェクトを作成し、そのプロパティを設定して IMenuCommandService に追加するコード例を次に示します。
Component1
クラスのインスタンスをフォームで作成し、Visual Studio のようなデザイン環境でそのフォームを開きます。F1 キーを押して MenuCommand を呼び出します。
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design
Namespace VbMenuCommand
<Designer(GetType(CDesigner))> _
Public Class Component1
Inherits System.ComponentModel.Component
Private components As System.ComponentModel.Container = Nothing
Public Sub New(ByVal container As System.ComponentModel.IContainer)
container.Add(Me)
InitializeComponent()
End Sub
Public Sub New()
InitializeComponent()
End Sub
Private Sub InitializeComponent()
End Sub
End Class
<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
End Namespace
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
namespace CSMenuCommand
{
[Designer(typeof(CDesigner))]
public class Component1 : System.ComponentModel.Component
{
private System.ComponentModel.Container components = null;
public Component1(System.ComponentModel.IContainer container)
{
container.Add(this);
InitializeComponent();
}
public Component1()
{
InitializeComponent();
}
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
}
[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.");
}
}
}
#using <system.dll>
#using <system.design.dll>
#using <system.windows.forms.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Security::Permissions;
namespace CppMenuCommand
{
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." );
}
};
}
.NET Framework のセキュリティ
- NamedPermissionSet (システム リソースへのフル アクセス許可)。LinkDemand、InheritanceDemand (要求値)。FullTrust (関連する状態)。
継承階層
System.Object
System.ComponentModel.Design.MenuCommand
System.ComponentModel.Design.DesignerVerb
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
参照
関連項目
MenuCommand メンバ
System.ComponentModel.Design 名前空間
StandardCommands
IMenuCommandService インターフェイス
CommandID クラス