How to: 建立可重複使用的按鈕群組
命令群組是一系列總是顯示於功能表或工具列的 [在一起的指令。 可重複使用指定給不同的父功能表中的任何命令群組 CommandPlacements .vsct 檔的區段。
命令群組通常包含按鈕,但也可以包含其他的功能表或combo方塊。
若要建立可重複使用的一組按鈕
執行 Visual Studio 的封裝範本,來建立 VSPackage,然後選取功能表命令 的 選取 VSPackage 選項頁面。 或者,您可以開啟現有的專案包含.vsct 檔。 如需詳細資訊,請參閱 逐步解說: 使用 Visual Studio 的封裝範本建立功能表命令。
在專案中開啟.vsct 檔案。
在Symbols區段中,找出 GuidSymbol 項目,包含群組和專案的命令。
預設情況下,它稱為 guid<ProjectName>CmdSet。
新增 IDSymbol 您的群組和另一個則用於如下列範例所示,您將加入至群組中,每個按鈕的項目。
<GuidSymbol name="guidButtonGroupCmdSet" value="{f69209e9-975a-4543-821d-1f4a2c52d737}"> <IDSymbol name="MyMenuGroup" value="0x1020" /> <IDSymbol name="cmdidMyCommand" value="0x0100" /> </GuidSymbol>
預設情況下,封裝範本會建立群組,名為 MyGroup 和按鈕具有您所提供,一起使用的名稱IDSymbol為每個項目。
在Groups區段中,建立新的群組具有相同的項目guid和id屬性中所指定, Symbols一節。 您也可以使用現有的群組,或使用所提供的 [套件] 範本中,項目,如下列範例所示。
<Group guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> </Group>
預設群組中,範例所示,會出現在 Visual Studio 工具功能表。
若要填入一組以供重複使用的按鈕
您可以將指令或功能表群組中使用群組定義中的指令或功能表上, 一層或築指令或功能表群組中使用 CommandPlacements一節。
按鈕定義為按鈕 元素內 按鈕一節。 定義具有為其父控制項,您的群組的按鈕或使用按鈕所提供的 「 套件 」 範本,如下列範例所示。
<Button guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button"> <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <CommandName>cmdidMyCommand</CommandName> <ButtonText>My Command name</ButtonText> </Strings> </Button>
如果按鈕必須顯示在一個以上的群組,建立項目,讓它在CommandPlacements一節。 設定guid和id屬性的 CommandPlacement 項目,以符合您想要的按鈕,,然後設定guid和id的其父的目標群組,如下列範例所示的項目。
<CommandPlacements> <CommandPlacement guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x105"> <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" /> </CommandPlacement> </CommandPlacements>
注意事項 值為Priority欄位會決定在新的命令群組中命令的位置。在設定的優先順序CommandPlacement項目會覆寫設定中的項目定義。具有較低的優先順序值的命令會顯示之前有較高的優先權值的命令。允許重複的優先權值,但不能保證有相同的優先權值的命令的相對位置,因為順序devenv setup命令會建立最終從登錄的介面可能不一致。
若要放在功能表上的可重複使用的一組按鈕
建立中的項目CommandPlacements一節。 設定的 GUID 及識別碼CommandPlacement項目與您的群組,並將父項設定的 GUID 及識別碼的目標位置。 請注意命令群組可以包含一個以上的功能表上。 在父功能表可為您所建立的由所提供的其中一個Visual Studio (如述 ShellCmdDef.vsct 或 SharedCmdDef.vsct),或另一個 VSPackage 所述的其中之一。 父層級數目沒有限制,只要在父功能表最後連到Visual Studio或 VSPackage 會顯示快顯功能表。
下列範例會將群組放在方案總管] 中右邊的另一個按鈕的工具列。
<CommandPlacements> <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x605"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" /> </CommandPlacement> </CommandPlacements>
請參閱
工作
How to: 建立和處理命令,在 VSPackages (C#)