コマンドの可用性
Visual Studio のコンテキストにより、使用可能なコマンドが決まります。 コンテキストは、現在のプロジェクト、現在のエディター、読み込まれている VSPackage、および統合開発環境 (IDE) のその他の側面によって変わります。
コマンド コンテキスト
最も一般的なコマンド コンテキストは、次のとおりです。
IDE: IDE によって提供されるコマンドは常に使用可能です。
VSPackage: VSPackage では、コマンドをいつ表示または非表示にするかを定義できます。
プロジェクト: プロジェクト コマンドは、現在選択されているプロジェクトにのみ表示されます。
エディター: エディターは、一度に 1 つしかアクティブにできません。 アクティブなエディターのコマンドは使用可能です。 エディターは言語サービスと密接に連携します。 言語サービスは、関連付けられているエディターのコンテキストでコマンドを処理する必要があります。
ファイルの種類: エディターは、複数の種類のファイルを読み込むことができます。 使用可能なコマンドは、ファイルの種類によって変わることがあります。
アクティブ ウィンドウ: 直前のアクティブなドキュメント ウィンドウでは、キー バインドのユーザー インターフェイス (UI) コンテキストを設定します。 ただし、内部 Web ブラウザーに似たキー バインド テーブルがあるツール ウィンドウでは、UI コンテキストを設定することもできます。 HTML エディターなどの複数のタブ付きのドキュメント ウィンドウでは、すべてのタブに異なるコマンド コンテキスト GUID があります。 ツール ウィンドウは、登録された後は常に [表示] メニューで使用可能です。
UI コンテキスト: UI コンテキストは、VSConstants.UICONTEXT クラスの値によって識別されます。たとえば、ソリューションがビルドされているときは SolutionBuilding_guid、デバッガーがアクティブになっているときは Debugging_guid です。 複数の UI コンテキストを同時にアクティブにすることができます。
カスタム コンテキスト GUID を定義する
適切なコマンド コンテキスト GUID がまだ定義されていない場合は、VSPackage で定義してから、コマンドの表示を制御するために必要に応じてアクティブまたは非アクティブになるようにプログラムすることができます。
GetCmdUIContextCookie メソッドを呼び出して、コンテキスト GUID を登録します。
IsCmdUIContextActive メソッドを呼び出して、コンテキスト GUID の状態を取得します。
SetCmdUIContext メソッドを呼び出して、コンテキスト GUID のオンとオフを切り替えます。
注意
他の VSPackage が既存のコンテキスト GUID に依存している可能性があるため、ご使用の VSPackage がそれらに影響しないことを確認してください。