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 命名空間