次の方法で共有


CommandSet クラス

ドメイン固有言語のメニューで使用できるコマンドのサブセットを表します。 これらのコマンドの処理方法を変更する YourLanguageCommandSet のメソッドをオーバーライドします。

この API は、CLS に準拠していません。 

継承階層

System.Object
  System.MarshalByRefObject
    Microsoft.VisualStudio.Modeling.Shell.CommandSetLibrary
      Microsoft.VisualStudio.Modeling.Shell.CommandSet

名前空間:  Microsoft.VisualStudio.Modeling.Shell
アセンブリ:  Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll 内)

構文

'宣言
<CLSCompliantAttribute(False)> _
Public MustInherit Class CommandSet _
    Inherits CommandSetLibrary
[CLSCompliantAttribute(false)]
public abstract class CommandSet : CommandSetLibrary

CommandSet 型で公開されるメンバーは以下のとおりです。

コンストラクター

  名前 説明
プロテクト メソッド CommandSet CommandSet クラスの新しいインスタンスを初期化します。

このページのトップへ

プロパティ

  名前 説明
プロテクト プロパティ CurrentDocData (CommandSetLibrary から継承されます。)
プロテクト プロパティ CurrentDocumentSelection (CommandSetLibrary から継承されます。)
プロテクト プロパティ CurrentDocView アクティブなドキュメント ウィンドウのビューを取得します。
プロテクト プロパティ CurrentModelingDocView (CommandSetLibrary から継承されます。)
プロテクト プロパティ CurrentSelection (CommandSetLibrary から継承されます。)
プロテクト プロパティ MenuService (CommandSetLibrary から継承されます。)
プロテクト プロパティ MonitorSelection (CommandSetLibrary から継承されます。)
プロテクト プロパティ ServiceProvider (CommandSetLibrary から継承されます。)
プロテクト プロパティ SingleDocumentSelection (CommandSetLibrary から継承されます。)
プロテクト プロパティ SingleSelection (CommandSetLibrary から継承されます。)

このページのトップへ

メソッド

  名前 説明
プロテクト メソッド CanDeleteSelectedItems 選択した項目を削除できる場合は true を返します。 (CommandSetLibrary から継承されます。)
パブリック メソッド CreateObjRef セキュリティ クリティカル。リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
プロテクト メソッド DeleteSelectedItems 選択した項目を削除します。 (CommandSetLibrary から継承されます。)
パブリック メソッド Equals 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッド Finalize オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド GetHashCode 既定のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド GetLifetimeService セキュリティ クリティカル。対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
プロテクト メソッド GetMenuCommands コマンドをショートカット メニューに表示します。 (CommandSetLibrary.GetMenuCommands() をオーバーライドします。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド Initialize コマンド セットを初期化します。GetMenuCommands を呼び出して結果をキャッシュします。 (CommandSetLibrary から継承されます。)
パブリック メソッド InitializeLifetimeService セキュリティ クリティカル。対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
プロテクト メソッド IsAnyDocumentSelectionCompartment 選択リストのいずれかの項目がコンパートメントである場合は true。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsAnyDocumentSelectionMoveableHostShape 選択リストのいずれかの項目が、削除できない移動可能なホスト図形である場合は true。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsAnyDocumentSelectionUndeletable 選択リストの図形項目のいずれかが削除できない場合は true。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsCurrentDiagramEmpty 図に子がない場合は true。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsDiagramSelected 図が選択される場合は true。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsExpandableShape ユーザーが図形を展開して、ドメイン プロパティを表示できるかどうかを確認します。
プロテクト メソッド IsSingleDocumentSelection アクティブなドキュメントで選択されている項目が 1 つしかない場合は True。 (CommandSetLibrary から継承されます。)
プロテクト メソッド IsSingleSelection アクティブなドキュメント ウィンドウまたはツール ウィンドウで選択されている項目が 1 つしかない場合は True。 (CommandSetLibrary から継承されます。)
プロテクト メソッド MemberwiseClone() 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッド MemberwiseClone(Boolean) 現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (MarshalByRefObject から継承されます。)
プロテクト メソッド ProcessOnMenuDeleteCommand ユーザーが [削除] コマンドをクリックするか、Del キーを押すと呼び出されます。項目を削除します。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuEditCompartmentItemCommand ユーザーがコンパートメント図形の項目で [編集] メニュー コマンドをクリックすると呼び出されます。テキスト編集状態に移行します。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuExpandCollapseCommand ユーザーが図形に割り当てられているプロパティの一覧の展開または折りたたみを行うときに呼び出されます。
プロテクト メソッド ProcessOnMenuPageSetupCommand ページ設定ダイアログ ボックスを開きます。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuPrintCommand [印刷] ダイアログ ボックスを開きます。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuPrintPreviewCommand 印刷プレビュー ウィンドウを開きます。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuRerouteLineCommand 2 つの図形間のコネクタの既定の位置を復元します。この動作を変更するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuResetDecoratorLocationCommand [デコレーターの場所のリセット] メニュー コマンドを処理するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuResetDecoratorSizeCommand [デコレーターのサイズのリセット] メニュー コマンドを処理するには、このメソッドをオーバーライドします。
プロテクト メソッド ProcessOnMenuSelectAllCommand ユーザーが [編集] メニューの [すべて選択] コマンドをクリックすると、または Ctrl キーを押しながら A キーを押すと呼び出されます。図のすべての図形を選択します。この動作を変更するには、そのメソッドをオーバーライドします。
プロテクト メソッド ProcessOnStatusDeleteCommand [削除] コマンドをコンテキスト メニューに表示するかどうかを決定します。ユーザーが図を右クリックしたときに呼び出されます。
プロテクト メソッド ProcessOnStatusEditCompartmentItemCommand [編集] コマンドをコンテキスト メニューに表示するかどうかを決定します。
プロテクト メソッド ProcessOnStatusExpandCollapseCommand [展開] コマンドまたは [折りたたみ] コマンドをコンテキスト メニューに表示するかどうかを決定します。ユーザーが図を右クリックしたときに呼び出されます。
プロテクト メソッド ProcessOnStatusPageSetupCommand [ページ設定] コマンドを [ファイル] メニューに表示するかどうかを決定します。ダイアグラムがアクティブな場合にユーザーが [ファイル] メニューをクリックすると呼び出されます。
プロテクト メソッド ProcessOnStatusPrintCommand [印刷] コマンドを [ファイル] メニューに表示するかどうかを決定します。ダイアグラムがアクティブな場合にユーザーが [ファイル] メニューをクリックすると呼び出されます。
プロテクト メソッド ProcessOnStatusPrintPreviewCommand [印刷プレビュー] コマンドを [ファイル] メニューに表示するかどうかを決定します。ダイアグラムがアクティブな場合にユーザーが [ファイル] メニューをクリックすると呼び出されます。
プロテクト メソッド ProcessOnStatusRerouteLineCommand [再接続] コマンドをコンテキスト メニューに表示するかどうかを決定します。ユーザーが図を右クリックしたときに呼び出されます。
プロテクト メソッド ProcessOnStatusResetDecoratorLocationCommand [デコレータの位置のリセット] コマンドをコンテキスト メニューに表示するかどうかを決定します。ユーザーが図を右クリックしたときに呼び出されます。
プロテクト メソッド ProcessOnStatusResetDecoratorSizeCommand [デコレータのサイズのリセット] コマンドをコンテキスト メニューに表示するかどうかを決定します。ユーザーが図を右クリックしたときに呼び出されます。
プロテクト メソッド ProcessOnStatusSelectAllCommand [すべて選択] コマンドを [ファイル] メニューに表示するかどうかを決定します。ダイアグラムがアクティブな場合にユーザーが [編集] メニューをクリックすると呼び出されます。
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

解説

DSL を持つメニュー コマンドにどのように応答するかを変更できます。 変更できるコマンドがショートカット メニュー コマンド、およびファイルの一部のコマンドが含まれ、メニューの編集をクリックします。

DslPackage のプロジェクトでは、生成されたファイルは、部分クラスの宣言を含む CommandSet.cs と呼ばれる <YourLanguageName>CommandSet 検索します。標準メニュー コマンドの動作を変更するには、同じクラスの部分定義を含む別のファイルを追加します。

このクラスでは、基本クラスで定義されているメソッドをオーバーライドできます。

注意

新しいファイルの名前空間が生成された CommandSet.cs の名前空間と同じであることを確認します。新しいファイルにクラス宣言内の「オーバーライド」を入力すると、オーバーライドできるメソッドのリストを参照する必要があります。

各コマンドに ProcessOnStatus…メソッドと ProcessOnMenu…メソッドがあります。 ProcessOnStatus…メソッドは、コマンドが右クリック メニューに表示するかどうかを判定します。 コマンドが表示され、メニュー項目を有効にするか、灰色かどうかを判断するために固有のプロパティを設定するようにコマンド ライン パラメーターのプロパティを表示するかどうかを設定します。

ProcessOnMenu…メソッドは、ユーザーがメニュー項目をクリックすると、コマンドを実行します。

注意

Commands.vsct ファイルの追加コマンドを定義できます。

詳細については、「方法: ショートカット メニューにコマンドを追加する」を参照してください。

このファイルは DslPackage のプロジェクトに追加されます。 これは、DSL のユーザーが複数の要素を一度に削除することはできません。

// In the DslPackage project.
namespace Company.Language1 // Check this is correct after creating the file.
{
  internal partial class Language1CommandSet // Same class as the generated class.
  {
    /// <summary>
    /// Called when user right-clicks on the diagram or clicks the Edit menu.
    /// </summary>
    /// <param name="command"></param>
    protected override void ProcessOnStatusDeleteCommand(System.ComponentModel.Design.MenuCommand command)
    {
      if (this.CurrentSelection.Count > 1)
      {
        // If user has selected more than one item, Delete is greyed out.
        command.Enabled = false;
      }
      else
      {
        // Otherwise, default behavior.
        base.ProcessOnStatusDeleteCommand(command);
      }
    }
    /// <summary>
    /// Called when user presses Delete key or clicks the Delete command on a menu.
    /// </summary>
    protected override void ProcessOnMenuDeleteCommand()
    {
      // Allow users to delete only one thing at a time.
      if (this.CurrentSelection.Count <= 1)
      {
        base.ProcessOnMenuDeleteCommand();
      }
    }
  }
}

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

関連項目

Microsoft.VisualStudio.Modeling.Shell 名前空間

その他の技術情報

方法: ショートカット メニューにコマンドを追加する