Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam kerangka kerja paket terkelola Visual Studio, kelas yang berasal dari DialogPage memperluas Visual Studio IDE dengan menambahkan halaman Opsi di bawah menu Alat .
Objek yang mengimplementasikan halaman Opsi Alat tertentu dikaitkan dengan VSPackages tertentu oleh ProvideOptionPageAttribute objek .
Karena lingkungan membuat instans objek yang mengimplementasikan halaman Opsi Alat tertentu ketika halaman tertentu ditampilkan oleh IDE:
Halaman Opsi Alat harus diimplementasikan pada objeknya sendiri, dan bukan pada objek yang mengimplementasikan VSPackage.
Objek tidak dapat menerapkan beberapa halaman Opsi Alat.
Mendaftar sebagai penyedia halaman Opsi Alat
VSPackage yang mendukung konfigurasi pengguna melalui halaman Opsi Alat menunjukkan objek yang menyediakan halaman Opsi Alat ini dengan menerapkan instans ProvideOptionPageAttribute yang diterapkan ke Package implementasi.
Harus ada satu instans ProvideOptionPageAttribute untuk setiap DialogPagejenis turunan yang mengimplementasikan halaman Opsi Alat.
Setiap instans ProvideOptionPageAttribute menggunakan jenis yang mengimplementasikan halaman Opsi Alat, string yang berisi kategori dan subkategori yang digunakan untuk mengidentifikasi halaman Opsi Alat, dan informasi sumber daya untuk mendaftarkan jenis sebagai menyediakan halaman Opsi Alat.
Status halaman Opsi Alat Pertahankan
Jika implementasi halaman Opsi Alat terdaftar dengan dukungan otomatisasi diaktifkan, IDE akan mempertahankan status halaman bersama dengan semua halaman Opsi Alat lainnya.
VSPackage dapat mengelola persistensinya sendiri dengan menggunakan ProvideProfileAttribute. Hanya satu atau metode persistensi lainnya yang harus digunakan.
Menerapkan kelas DialogPage
Objek yang menyediakan implementasi VSPackage dari DialogPagejenis -turunan dapat memanfaatkan fitur yang diwariskan berikut:
Jendela antarmuka pengguna default.
Mekanisme persistensi default yang tersedia baik jika ProvideProfileAttribute diterapkan ke kelas , atau jika SupportsProfiles properti diatur ke
true
untuk ProvideOptionPageAttribute yang diterapkan ke kelas .Dukungan automasi.
Persyaratan minimum untuk objek yang mengimplementasikan halaman Opsi Alat menggunakan DialogPage adalah penambahan properti publik.
Jika kelas terdaftar dengan benar sebagai penyedia halaman Opsi Alat, maka properti publiknya tersedia di bagian Opsi dari menu Alat dalam bentuk kisi properti.
Semua fitur default ini dapat ditimpa. Misalnya, untuk membuat antarmuka pengguna yang lebih canggih hanya perlu mengambil alih implementasi Windowdefault .
Contoh
Berikut ini adalah implementasi "Halo dunia" sederhana dari halaman opsi. Menambahkan kode berikut ke proyek default yang dibuat oleh templat paket Visual Studio dengan opsi Perintah Menu yang dipilih akan menunjukkan fungsionalitas halaman opsi secara memadai.
Deskripsi
Kelas berikut mendefinisikan halaman opsi "Halo dunia" minimal. Saat dibuka, pengguna dapat mengatur properti publik HelloWorld
di kisi properti.
Kode
using System;
using Microsoft.VisualStudio.Shell;
namespace Company.UIUserSettingsToolsOptionsPages
{
class HelloWorldOptions : DialogPage
{
bool helloWorld = true;
public bool HelloWorld
{
get { return helloWorld; }
set { helloWorld = value; }
}
}
}
Imports System
Imports Microsoft.VisualStudio.Shell
Namespace Company.UIUserSettingsToolsOptionsPages
Class HelloWorldOptions
Inherits DialogPage
Private m_helloWorld As Boolean = True
Public Property HelloWorld() As Boolean
Get
Return m_helloWorld
End Get
Set(ByVal value As Boolean)
m_helloWorld = value
End Set
End Property
End Class
End Namespace
Deskripsi
Menerapkan atribut berikut ke kelas paket membuat halaman opsi tersedia saat paket dimuat. Angka-angka tersebut adalah ID sumber daya arbitrer untuk kategori dan halaman, dan nilai Boolean di akhir menentukan apakah halaman mendukung otomatisasi.
Kode
[ProvideOptionPage(typeof(HelloWorldOptions),
"Hello World Category", "Hello World Page",
1000, 1001, false)]
<PackageRegistration(UseManagedResourcesOnly:=True)> _
<DefaultRegistryRoot("Software\Microsoft\VisualStudio\9.0")> _
<InstalledProductRegistration(False, "#110", "#112", "1.0", IconResourceID:=400)> _
<ProvideLoadKey("Standard", "1.0", "Package Name", "Company", 1)> _
<ProvideMenuResource(1000, 1)> _
<Guid(GuidList.guidPkgString)> _
<ProvideOptionPage(GetType(HelloWorldOptions), "Hello World Category", "Hello World Page", 1000, 1001, False)> _
Public NotInheritable Class UIUserSettingsToolsOptionsPagesPackage
Inherits Package
Deskripsi
Penanganan aktivitas berikut menampilkan hasil tergantung pada nilai properti yang diatur di halaman opsi. Ini menggunakan GetDialogPage metode dengan hasil yang secara eksplisit ditransmisikan ke dalam jenis halaman opsi kustom untuk mengakses properti yang diekspos oleh halaman.
Dalam kasus proyek yang dihasilkan oleh templat paket, panggil fungsi ini dari MenuItemCallback
fungsi untuk melampirkannya ke perintah default yang ditambahkan ke menu Alat .
Kode
private void ShowHelloWorld(object sender, EventArgs e)
{
var hw = GetDialogPage(typeof(HelloWorldOptions))
as HelloWorldOptions;
if (hw.HelloWorld == true)
{
MessageBox.Show("Hello World!");
}
else MessageBox.Show("Goodbye.");
}
Private Sub ShowHelloWorld(ByVal sender As Object, ByVal e As EventArgs)
Dim hw = TryCast(GetDialogPage(GetType(HelloWorldOptions)), HelloWorldOptions)
If hw.HelloWorld = True Then
MessageBox.Show("Hello World!")
Else
MessageBox.Show("Goodbye.")
End If
End Sub