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.
Seperti yang telah Anda perhatikan saat berinteraksi dengan perancang Formulir Windows, ada banyak fitur waktu desain berbeda yang ditawarkan oleh kontrol Formulir Windows. Beberapa fitur yang ditawarkan oleh Visual Studio Designer termasuk garis rekam jepret, item tindakan, dan kisi properti. Semua fitur ini menawarkan cara yang lebih mudah untuk berinteraksi dan menyesuaikan kontrol selama waktu desain. Artikel ini adalah gambaran umum tentang jenis dukungan apa yang dapat Anda tambahkan ke kontrol kustom Anda, untuk membuat pengalaman waktu desain lebih baik bagi konsumen kontrol Anda.
Apa yang berbeda dari .NET Framework
Banyak elemen desain dasar kontrol kustom tetap sama dari .NET Framework. Namun, jika Anda menggunakan fitur kustomisasi perancang yang lebih canggih, seperti daftar tindakan, pengonversi jenis, dialog kustom, Anda memiliki beberapa skenario unik untuk ditangani.
Visual Studio adalah aplikasi berbasis .NET Framework, dan dengan demikian, Visual Designer yang Anda lihat untuk Formulir Windows juga didasarkan pada .NET Framework. Dengan proyek .NET Framework, lingkungan Visual Studio dan aplikasi Formulir Windows dirancang berjalan dalam proses yang sama, devenv.exe. Ini menimbulkan masalah saat Anda bekerja dengan aplikasi .NET (bukan .NET Framework) Formulir Windows. Baik .NET dan .NET Framework tidak dapat berfungsi dalam proses yang sama. Akibatnya, Windows Forms .NET menggunakan desainer yang berbeda, desainer "di luar proses".
Desainer di luar proses adalah suatu proses yang disebut DesignToolsServer.exe, dan dijalankan bersamaan dengan proses devenv.exe Visual Studio. Proses DesignToolsServer.exe berjalan dalam versi dan platform yang sama, seperti .NET 9 dan x64, dari .NET yang ditargetkan aplikasi Anda. Saat kontrol kustom Anda perlu menampilkan UI di Visual Studio, kontrol kustom Anda harus menerapkan arsitektur server klien untuk memfasilitasi komunikasi ke dan dari devenv.exe. Untuk informasi selengkapnya, lihat Perubahan perancang sejak .NET Framework.
Jendela properti
Jendela Properti
Gambar berikut menunjukkan kontrol Button yang dipilih di Visual Designer, dan grid properti menampilkan properti tombol.
Anda dapat mengontrol beberapa aspek tentang bagaimana informasi tentang kontrol kustom Anda muncul di kisi properti. Atribut diterapkan baik ke kelas kontrol kustom atau properti kelas.
Atribut untuk kelas
Tabel berikut menunjukkan atribut yang bisa Anda terapkan untuk menentukan perilaku kontrol dan komponen kustom Anda pada waktu desain.
| Karakteristik | Deskripsi |
|---|---|
| DefaultEventAttribute | Menentukan peristiwa default untuk komponen. |
| DefaultPropertyAttribute | Menentukan properti default untuk komponen. |
| DesignerAttribute | Menentukan kelas yang digunakan untuk menerapkan layanan waktu desain untuk komponen. |
| DesignerCategoryAttribute | Menentukan bahwa perancang untuk kelas termasuk dalam kategori tertentu. |
| ToolboxItemAttribute | Mewakili atribut dari sebuah alat di dalam kotak alat. |
| ToolboxItemFilterAttribute | Menentukan string filter dan jenis filter yang akan digunakan untuk item Kotak Alat. |
Atribut untuk properti
Tabel berikut ini memperlihatkan atribut yang bisa Anda terapkan ke properti atau anggota lain dari kontrol dan komponen kustom Anda.
| Karakteristik | Deskripsi |
|---|---|
| AmbientValueAttribute | Menentukan nilai yang akan diteruskan ke properti untuk menyebabkan properti mendapatkan nilainya dari sumber lain. Ini dikenal sebagai suasana . |
| BrowsableAttribute | Menentukan apakah properti atau event harus ditampilkan di jendela Properti. |
| CategoryAttribute | Menentukan nama kategori untuk mengelompokkan properti atau peristiwa saat ditampilkan dalam kontrol PropertyGrid diatur ke mode Categorized. |
| DefaultValueAttribute | Menentukan nilai default untuk properti. |
| DescriptionAttribute | Menentukan deskripsi untuk properti atau peristiwa. |
| DisplayNameAttribute | Menentukan nama tampilan untuk properti, peristiwa, atau metode publik yang tidak mengembalikan nilai dan tidak mengambil argumen. |
| EditorAttribute | Menentukan editor yang akan digunakan untuk mengubah properti. |
| EditorBrowsableAttribute | Menentukan bahwa properti atau metode dapat dilihat di editor. |
| HelpKeywordAttribute | Menentukan kata kunci konteks untuk kelas atau anggota. |
| LocalizableAttribute | Menentukan apakah properti harus dilokalkan. |
| PasswordPropertyTextAttribute | Menunjukkan bahwa representasi teks objek disembunyikan oleh karakter seperti tanda bintang. |
| ReadOnlyAttribute | Menentukan apakah properti yang terikat atribut ini hanya bisa dibaca atau bisa dibaca/tulis pada waktu desain. |
| RefreshPropertiesAttribute | Menunjukkan bahwa grid properti harus disegar-digakan saat nilai properti terkait berubah. |
| TypeConverterAttribute | Menentukan jenis apa yang akan digunakan sebagai pengonversi untuk objek tempat atribut ini terikat. |
Perancang kontrol kustom
Pengalaman waktu desain untuk kontrol kustom dapat ditingkatkan dengan menulis perancang kustom terkait. Secara default, kontrol kustom Anda ditampilkan pada permukaan desain host, dan terlihat sama seperti selama run-time. Dengan perancang kustom, Anda dapat meningkatkan tampilan waktu desain kontrol, menambahkan item tindakan, garis rekam jepret, dan item lainnya, yang dapat membantu pengguna dalam menentukan cara menata dan mengonfigurasi kontrol. Misalnya, pada waktu desain perancang ToolStrip menambahkan kontrol tambahan bagi pengguna untuk menambahkan, menghapus, dan mengonfigurasi item individual, seperti yang ditunjukkan dalam gambar berikut:
Anda dapat membuat desainer kustom Anda sendiri dengan melakukan langkah-langkah berikut:
- Menambahkan referensi ke paket NuGet Microsoft.WinForms.Designer.SDK.
- Buat jenis yang diwariskan
Microsoft.DotNet.DesignTools.Designers.ControlDesignerdari kelas . - Di kelas kontrol pengguna Anda, tandai kelas dengan System.ComponentModel.DesignerAttribute atribut kelas, melewati jenis yang Anda buat di langkah sebelumnya.
Untuk informasi selengkapnya, lihat bagian Apa yang berbeda dari .NET Framework .
Item tindakan
Tindakan perancang adalah menu peka konteks yang memungkinkan pengguna melakukan tugas umum dengan cepat. Misalnya, jika Anda menambahkan TabControl ke formulir, Anda akan menambahkan dan menghapus tab ke dan dari kontrol. Tab dikelola di jendela Properti , melalui TabPages properti , yang menampilkan editor koleksi tab. Alih-alih memaksa pengguna untuk selalu menyaring daftar Properti
Saat tag pintar dipilih, daftar tindakan ditampilkan:
Dengan menambahkan tindakan Tambahkan Tab dan Hapus Tab , perancang kontrol membuatnya sehingga Anda dapat dengan cepat menambahkan atau menghapus tab.
Membuat daftar item tindakan
Daftar item tindakan disediakan oleh jenis yang ControlDesigner Anda buat. Langkah-langkah berikut adalah panduan dasar untuk membuat daftar tindakan Anda sendiri:
- Menambahkan referensi ke paket NuGet Microsoft.WinForms.Designer.SDK.
- Buat kelas daftar tindakan baru yang mewarisi dari
Microsoft.DotNet.DesignTools.Designers.Actions.DesignerActionList. - Tambahkan properti ke daftar tindakan yang Anda inginkan untuk diakses pengguna. Misalnya, menambahkan
boolproperti atauBoolean(di Visual Basic) ke kelas membuat CheckBox kontrol dalam daftar tindakan. - Ikuti langkah-langkah di bagian Perancang kontrol kustom untuk membuat desainer baru.
- Di kelas perancang, ambil alih
ActionListsproperti, yang mengembalikanMicrosoft.DotNet.DesignTools.Designers.Actions.DesignerActionListCollectionjenis. - Tambahkan daftar tindakan Anda ke
DesignerActionListCollectioninstans, dan kembalikan.
Untuk contoh daftar tindakan, lihat repositori GitHub Formulir Windows Designer Extensibility Documents & Samples, khususnya TileRepeater.Designer.Server/ControlDesigner folder.
Editor tipe dialog modal
Di jendela Properti , sebagian besar properti mudah diedit di kisi, seperti ketika jenis dukungan properti adalah enumerasi, boolean, atau angka.
Terkadang, properti lebih kompleks dan memerlukan dialog kustom yang dapat digunakan pengguna untuk mengubah properti. Misalnya, Font properti adalah tipe System.Drawing.Font , yang berisi banyak properti yang mengubah tampilan font. Ini tidak mudah disajikan di jendela Properti , sehingga properti ini menggunakan dialog kustom untuk mengedit font:
Jika properti kontrol kustom Anda menggunakan editor jenis bawaan yang disediakan oleh Formulir Windows, Anda dapat menggunakan EditorAttribute untuk menandai properti Anda dengan editor .NET Framework yang sesuai yang Anda inginkan untuk digunakan Visual Studio. Dengan menggunakan editor bawaan, Anda menghindari persyaratan replikasi komunikasi objek proksi antara server dan klien yang disediakan oleh perancang di luar proses utama.
Saat mereferensikan editor jenis bawaan, gunakan jenis .NET Framework, bukan jenis .NET:
[Editor("System.Windows.Forms.Design.FileNameEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
"System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string? Filename { get; set; }
<Editor("System.Windows.Forms.Design.FileNameEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>
Public Property Filename As String
.NET Desktop feedback