共用方式為


新增工具列

本逐步解說說明如何將工具列新增至 Visual Studio IDE。

工具列是水平或垂直帶狀區域,包含繫結至命令的按鈕。 視其實作而定,IDE 中的工具列可以重新置放、停駐在主要 IDE 視窗的任何一邊,或讓工具列停留在其他視窗前面。

此外,使用者可以使用 [自訂] 對話方塊,在工具列中新增或移除命令。 一般而言,使用者可自訂 VSPackage 中的工具列。 IDE 會處理所有自訂,而 VSPackage 會回應命令。 VSPackage 不需要知道命令的實體位置。

如需功能表的詳細資訊,請參閱命令、功能表和工具列

使用工具列建立延伸模組

建立名為 IDEToolbar 的 VSIX 應用程式專案。 新增名為 ToolbarTestCommand 的功能表命令項目範本。 如需如何執行這項操作的詳細資訊,請參閱使用功能表命令建立延伸模組

建立 IDE 的工具列

  1. 在 ToolbarTestCommandPackage.vsct 中,尋找 Symbols 區段。 在名為 guidToolbarTestCommandPackageCmdSet 的 GuidSymbol 元素中,新增工具列和工具列群組的宣告,如下所示。

    <IDSymbol name="Toolbar" value="0x1000" />
    <IDSymbol name="ToolbarGroup" value="0x1050" />
    
  2. 在 Commands 區段頂端,建立 Menu 區段。 將 Menu 元素新增至 Menu 區段,以定義您的工具列。

    <Menus>
        <Menu guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" type="Toolbar">
            <CommandFlag>DefaultDocked</CommandFlag>
            <Strings>
                <ButtonText>Test Toolbar</ButtonText>
                <CommandName>Test Toolbar</CommandName>
            </Strings>
        </Menu>
    </Menus>
    

    工具列不能像子功能表一樣具巢狀結構。 因此,您不需要指派父群組。 此外,您不需要設定優先順序,因為使用者可以移動工具列。 一般而言,工具列的初始位置是以程序設計方式定義,但會保留使用者後續的變更。

  3. Groups 區段中,於現有的群組項目之後定義 Group 元素以包含工具列的命令。

    <Group guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" priority="0x0000">
        <Parent guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" />
    </Group>
    
  4. 讓按鈕出現在工具列上。 在 Buttons 區段中,將 Button 中的 Parent 區塊取代為工具列。 產生的 Button 區塊看起來應該像這樣:

    <Button guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarTestCommandId" priority="0x0100" type="Button">
        <Parent guid= "guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Invoke ToolbarTestCommand</ButtonText>
        </Strings>
    </Button>
    

    根據預設,如果工具列沒有命令,它就不會出現。

  5. 建置此專案並開始偵錯。 應該會出現實驗執行個體。

  6. 以滑鼠右鍵按一下 Visual Studio 功能表列以取得工具列清單。 選取 [測試工具列]

  7. 您現在應該會看到工具列成為 [在檔案中尋找] 圖示右邊的圖示。 當您按下圖示時,應該會看到一個顯示「ToolbarTestCommandPackage. 位於 IDEToolbar.ToolbarTestCommand.MenuItemCallback() 內」的訊息方塊。