共用方式為


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.11.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.11.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 安全性關鍵。建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。 (繼承自 MarshalByRefObject)。
受保護的方法 DeleteSelectedItems 刪除選取的項目。 (繼承自 CommandSetLibrary)。
公用方法 Equals 判斷指定的物件是否等於目前物件。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetLifetimeService 安全性關鍵。擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。 (繼承自 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 如果在使用中文件上只能有一個選取的項目,則為 true。 (繼承自 CommandSetLibrary)。
受保護的方法 IsSingleSelection 如果沒有在使用中文件視窗或 [工具] 視窗上只能有一個選取的項目,則為 true。 (繼承自 CommandSetLibrary)。
受保護的方法 MemberwiseClone() 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 MemberwiseClone(Boolean) 建立目前 MarshalByRefObject 物件的淺層複本。 (繼承自 MarshalByRefObject)。
受保護的方法 ProcessOnMenuDeleteCommand 當使用者按 [刪除] 命令,或按下 Delete 鍵時,會呼叫它。刪除項目。覆寫這個方法,以改變此表現方式。
受保護的方法 ProcessOnMenuEditCompartmentItemCommand 當使用者按一下 [區間] 圖形中的項目上的 [編輯] 功能表命令時,會呼叫它。進入文字編輯狀態。覆寫這個方法,以改變此表現方式。
受保護的方法 ProcessOnMenuExpandCollapseCommand 呼叫時使用者會展開或摺疊指派給圖形的屬性清單。
受保護的方法 ProcessOnMenuPageSetupCommand 開啟 [版面設定] 對話方塊。覆寫這個方法,以改變此表現方式。
受保護的方法 ProcessOnMenuPrintCommand 開啟 [列印] 對話方塊。覆寫這個方法,以改變此表現方式。
受保護的方法 ProcessOnMenuPrintPreviewCommand 開啟預覽列印視窗。覆寫這個方法,以改變此表現方式。
受保護的方法 ProcessOnMenuRerouteLineCommand 還原預設的位置的兩個圖形之間的連接器。覆寫這個方法,以改變此表現方式。
受保護的方法 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 檔案中定義的其他命令。

如需詳細資訊,請參閱 HOW TO:在捷徑功能表中加入命令

範例

這個檔案會加入至 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();
      }
    }
  }
}

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.Shell 命名空間

其他資源

HOW TO:在捷徑功能表中加入命令