Bagikan melalui


Membuat grup tombol yang dapat digunakan kembali

Grup perintah adalah kumpulan perintah yang selalu muncul bersama pada menu atau toolbar. Grup perintah apa pun dapat digunakan kembali dengan menetapkannya ke menu induk yang berbeda di bagian CommandPlacements dari file .vsct .

Grup perintah biasanya berisi tombol, tetapi juga dapat berisi menu atau kotak kombo lainnya.

Untuk membuat grup tombol yang dapat digunakan kembali

  1. Buat proyek VSIX bernama ReusableButtons. Untuk informasi selengkapnya, lihat Membuat ekstensi dengan perintah menu.

  2. Saat proyek terbuka, tambahkan templat item perintah kustom bernama ReusableCommand. Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Tambahkan>Item Baru. Dalam dialog Tambahkan Item Baru, buka Visual C#>Ekstensibilitas dan pilih Perintah Kustom. Di bidang Nama di bagian bawah jendela, ubah nama file perintah menjadi ReusableCommand.cs.

  3. Dalam file .vsct, buka bagian Simbol dan temukan elemen GuidSymbol yang berisi grup dan perintah untuk proyek. Ini harus diberi nama guidReusableCommandPackageCmdSet.

  4. Tambahkan IDSymbol untuk setiap tombol yang akan Anda tambahkan ke grup, seperti dalam contoh berikut.

    <GuidSymbol name="guidReusableCommandPackageCmdSet" value="{7f383b2a-c6b9-4c1d-b4b8-a26dc5b60ca1}">
        <IDSymbol name="MyMenuGroup" value="0x1020" />
        <IDSymbol name="ReusableCommandId" value="0x0100" />
        <IDSymbol name="SecondReusableCommandId" value="0x0200" />
    </GuidSymbol>
    

    Secara default, templat item perintah membuat grup bernama MyMenuGroup dan tombol yang memiliki nama yang Anda berikan, bersama dengan entri IDSymbol untuk masing-masing.

  5. Di bagian Grup, buat elemen Grup yang memiliki atribut GUID dan ID yang sama dengan yang diberikan di bagian Simbol. Anda juga dapat menggunakan grup yang sudah ada, atau menggunakan entri yang disediakan oleh templat perintah, seperti dalam contoh berikut. Grup ini muncul pada menu Alat

    <Groups>
        <Group guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
              <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
        </Group>
    </Groups>
    

Untuk membuat grup tombol untuk digunakan kembali

  1. Anda dapat meletakkan perintah atau menu dalam grup baik dengan menggunakan grup sebagai induk dalam definisi perintah atau menu, atau dengan meletakkan perintah atau menu dalam grup dengan menggunakan bagian CommandPlacements.

    Di bagian Tombol tentukan tombol yang memiliki grup Anda sebagai induknya, atau gunakan tombol yang disediakan oleh templat paket, seperti yang ditunjukkan dalam contoh berikut.

    <Button guid="guidReusableCommandPackageCmdSet" id="ReusableCommandId" priority="0x0100" type="Button">
        <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Invoke ReusableCommand</ButtonText>
        </Strings>
    </Button>
    
  2. Jika tombol harus muncul di lebih dari satu grup, buat entri untuk itu di bagian CommandPlacements, yang harus ditempatkan setelah bagian Perintah. Atur atribut GUID dan ID dari elemen CommandPlacement agar sesuai dengan atribut tombol yang ingin Anda posisikan, lalu atur GUID dan ID elemen Induknya ke elemen dari grup target, seperti yang ditunjukkan dalam contoh berikut.

    <CommandPlacements>
        <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="SecondReusableCommandId" priority="0x105">
          <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" />
        </CommandPlacement>
    </CommandPlacements>
    

    Catatan

    Nilai bidang Prioritas menentukan posisi perintah dalam grup perintah baru. Prioritas yang diatur dalam elemen CommandPlacement mengambil alih yang ditetapkan dalam definisi item. Perintah yang memiliki nilai prioritas lebih rendah ditampilkan sebelum perintah yang memiliki nilai prioritas lebih tinggi. Nilai prioritas duplikat diizinkan, tetapi posisi relatif perintah yang memiliki nilai prioritas yang sama tidak dapat dijamin karena urutan perintah devenv /setup membuat antarmuka akhir dari registri mungkin tidak konsisten.

Untuk meletakkan sekelompok tombol yang dapat digunakan kembali pada menu

  1. Buat entri di bagian .CommandPlacements Atur GUID dan ID CommandPlacement elemen ke grup Anda, dan atur GUID dan ID induk ke lokasi target.

    Bagian CommandPlacements harus ditempatkan tepat setelah bagian Perintah:

    <CommandTable>
    ...
      <Commands>... </Commands>
      <CommandPlacements>... </CommandPlacements>
    ...
    </CommandTable>
    

    Grup perintah dapat disertakan pada lebih dari satu menu. Menu induk dapat berupa menu yang Anda buat, yang disediakan oleh Visual Studio (seperti yang dijelaskan dalam ShellCmdDef.vsct atau SharedCmdDef.vsct), atau yang ditentukan dalam VSPackage lain. Jumlah lapisan induk tidak terbatas selama menu induk akhirnya terhubung ke Visual Studio atau ke menu pintasan yang ditampilkan oleh VSPackage.

    Contoh berikut menempatkan grup di toolbar Penjelajah Solusi, di sebelah kanan tombol lain.

    <CommandPlacements>
        <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0xF00">
          <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>
        </CommandPlacement>
    </CommandPlacements>
    
    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup"
          priority="0x605">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" />
      </CommandPlacement>
    </CommandPlacements>