Bagikan melalui


Opsi dan Halaman Opsi

Mengklik Opsi pada menu Alat akan membuka kotak dialog Opsi . Opsi dalam kotak dialog ini secara kolektif disebut sebagai halaman opsi. Kontrol pohon di panel navigasi menyertakan kategori opsi, dan setiap kategori memiliki halaman opsi. Saat Anda memilih halaman, opsinya muncul di panel kanan. Halaman ini memungkinkan Anda mengubah nilai opsi yang menentukan status VSPackage.

Dukungan untuk Halaman Opsi

Kelas ini Package menyediakan dukungan untuk membuat halaman opsi dan kategori opsi. Kelas DialogPage mengimplementasikan halaman opsi.

Implementasi DialogPage default menawarkan properti publiknya kepada pengguna dalam kisi generik properti. Anda dapat menyesuaikan perilaku ini dengan menimpa berbagai metode di halaman untuk membuat halaman opsi kustom yang memiliki antarmuka pengguna (UI) sendiri. Untuk informasi selengkapnya, lihat Membuat Halaman Opsi.

Kelas DialogPage mengimplementasikan IProfileManager, yang memberikan persistensi untuk halaman opsi dan juga untuk pengaturan pengguna. Implementasi default dari LoadSettingsFromStorage metode dan SaveSettingsToStorage mempertahankan perubahan properti menjadi bagian pengguna dari registri jika properti dapat dikonversi ke dan dari string.

Jalur Registri Halaman Opsi

Secara default, jalur registri properti yang dikelola oleh halaman opsi ditentukan dengan menggabungkan UserRegistryRoot, kata DialogPage, dan nama jenis kelas halaman opsi. Misalnya, kelas halaman opsi mungkin didefinisikan sebagai berikut.

namespace Company.OptionsPage
{
    public class OptionsPageGeneral : DialogPage
    {
    }
}

UserRegistryRoot Jika adalah HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, maka pasangan nama properti dan nilai adalah subkunci dari HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPage.OptionsPageGeneral.

Jalur registri halaman opsi itu sendiri ditentukan dengan menggabungkan ApplicationRegistryRoot, kata, ToolsOptionsPages, dan kategori dan nama halaman opsi. Misalnya, jika halaman Opsi kustom memiliki kategori, Halaman Opsi Saya, dan ApplicationRegistryRoot HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, halaman opsi memiliki kunci registri, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom.

Atribut dan Tata Letak Halaman Alat/Opsi

Atribut ProvideOptionPageAttribute menentukan pengelompokan halaman opsi kustom ke dalam kategori di pohon navigasi kotak dialog Opsi . Atribut ProvideOptionPageAttribute mengaitkan halaman opsi dengan VSPackage yang menyediakan antarmuka. Pertimbangkan fragmen kode berikut:

[ProvideOptionPage(typeof(OptionsPageGeneral),"My Option Pages", "General", 101, 106, true)]
[ProvideOptionPage(typeof(OptionsPageCustom), "My Option Pages", "Custom", 101, 107, true)]
[Guid("B0002DC2-56EE-4931-93F7-70D6E9863940")]
public class MyPackage : Package

Ini menyatakan bahwa MyPackage menyediakan dua halaman opsi, OptionsPageGeneral dan OptionsPageCustom. Dalam kotak dialog Opsi , kedua halaman opsi muncul di kategori Halaman Opsi Saya sebagai Umum dan Kustom, masing-masing.

Atribut dan Tata Letak Opsi

Antarmuka pengguna (UI) yang disediakan halaman menentukan tampilan opsi di halaman opsi kustom. Tata letak, pelabelan, dan deskripsi opsi di halaman opsi umum ditentukan oleh atribut berikut:

  • CategoryAttribute menentukan kategori opsi.

  • DisplayNameAttribute menentukan nama tampilan opsi.

  • DescriptionAttribute menentukan deskripsi opsi.

    Catatan

    Atribut yang setara, SRCategory, LocDisplayName, dan SRDescription, menggunakan sumber daya string untuk pelokalan dan didefinisikan dalam sampel proyek terkelola.

    Pertimbangkan fragmen kode berikut:

    [Category("My Options")]
    [DisplayName("Integer Option")]
    [Description("My integer option")]
    public int OptionInteger { get; set; }
    

Opsi OptionInteger muncul di halaman opsi sebagai Opsi Bilangan Bulat di kategori Opsi Saya. Jika opsi dipilih, deskripsi, opsi Bilangan bulat saya, muncul di kotak deskripsi.

Mengakses Halaman Opsi dari VSPackage Lain

VSPackage yang menghosting dan mengelola halaman opsi dapat diakses secara terprogram dari VSPackage lain dengan menggunakan model otomatisasi. Misalnya, dalam kode berikut, VSPackage terdaftar sebagai hosting halaman opsi.

[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package

Fragmen kode berikut mendapatkan nilai OptionInteger dari MyOptionPage:

DTE dte = (DTE)GetService(typeof(DTE));
EnvDTE.Properties props = dte.get_Properties("My Category", "My Grid Page");
int n = (int)props.Item("OptionInteger").Value;

ProvideOptionPageAttribute Ketika atribut mendaftarkan halaman opsi, halaman terdaftar di bawah kunci AutomationProperties jika SupportsAutomation argumen atribut adalah true. Automation memeriksa entri registri ini untuk menemukan VSPackage terkait, dan otomatisasi kemudian mengakses properti melalui halaman opsi yang dihosting, dalam hal ini, Halaman Kisi Saya.

Jalur registri properti otomatisasi ditentukan dengan menggabungkan ApplicationRegistryRoot, kata, AutomationProperties, dan kategori dan nama halaman opsi. Misalnya, jika halaman opsi memiliki kategori Kategori Saya, nama Halaman Kisi Saya, dan ApplicationRegistryRoot, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, maka properti otomatisasi memiliki kunci registri, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page.

Catatan

Nama kanonis, Halaman Kisi Category.My Saya, adalah nilai subkunjung Nama kunci ini.