Bagikan melalui


Varietas Kontrol Kustom

Dengan .NET Framework, Anda dapat mengembangkan dan menerapkan kontrol baru. Anda dapat memperluas fungsionalitas kontrol pengguna yang akrab serta kontrol yang ada melalui pewarisan. Anda juga dapat menulis kontrol kustom yang melakukan lukisan mereka sendiri.

Memutuskan jenis kontrol mana yang akan dibuat dapat membingungkan. Topik ini menyoroti perbedaan di antara berbagai jenis kontrol tempat Anda dapat mewarisi, dan memberi Anda informasi tentang cara memilih jenis kontrol tertentu untuk proyek Anda.

Catatan

Untuk informasi tentang penulisan kontrol yang akan digunakan pada Formulir Web, lihat Mengembangkan Kontrol Server ASP.NET Kustom.

Kelas Kontrol Dasar

Kelas Control adalah kelas dasar untuk kontrol Formulir Windows. Ini menyediakan infrastruktur yang diperlukan untuk tampilan visual dalam aplikasi Formulir Windows.

Kelas Control melakukan tugas-tugas berikut untuk menyediakan tampilan visual dalam aplikasi Formulir Windows:

  • Mengekspos handel jendela.

  • Mengelola perutean pesan.

  • Menyediakan peristiwa mouse dan keyboard, dan banyak peristiwa antarmuka pengguna lainnya.

  • Menyediakan fitur tata letak tingkat lanjut.

  • Berisi banyak properti khusus untuk tampilan visual, seperti ForeColor, , BackColorHeight, dan Width.

  • Menyediakan dukungan keamanan dan utas yang diperlukan agar kontrol Formulir Windows bertindak sebagai kontrol Microsoft® ActiveX®.

Karena begitu banyak infrastruktur yang disediakan oleh kelas dasar, relatif mudah untuk mengembangkan kontrol Formulir Windows Anda sendiri.

Jenis Kontrol

Formulir Windows mendukung tiga jenis kontrol yang ditentukan pengguna: komposit, diperluas, dan kustom. Bagian berikut menjelaskan setiap jenis kontrol dan memberikan rekomendasi untuk memilih jenis yang akan digunakan dalam proyek Anda.

Kontrol Komposit

Kontrol komposit adalah kumpulan kontrol Formulir Windows yang dienkapsulasi dalam kontainer umum. Kontrol semacam ini terkadang disebut kontrol pengguna. Kontrol yang terkandung disebut kontrol konstituen.

Kontrol komposit menyimpan semua fungsionalitas inheren yang terkait dengan setiap kontrol Formulir Windows yang terkandung dan memungkinkan Anda mengekspos dan mengikat propertinya secara selektif. Kontrol komposit juga menyediakan banyak fungsionalitas penanganan keyboard default tanpa upaya pengembangan ekstra di pihak Anda.

Misalnya, kontrol komposit dapat dibuat untuk menampilkan data alamat pelanggan dari database. Kontrol ini dapat mencakup DataGridView kontrol untuk menampilkan bidang database, BindingSource untuk menangani pengikatan ke sumber data, dan BindingNavigator kontrol untuk menelusuri rekaman. Anda dapat secara selektif mengekspos properti pengikatan data, dan Anda dapat mengemas dan menggunakan kembali seluruh kontrol dari aplikasi ke aplikasi. Untuk contoh kontrol komposit semacam ini, lihat Cara: Menerapkan Atribut di Kontrol Formulir Windows.

Untuk menulis kontrol komposit, berasal dari UserControl kelas . Kelas UserControl dasar menyediakan perutean keyboard untuk kontrol anak dan memungkinkan kontrol anak berfungsi sebagai grup. Untuk informasi selengkapnya, lihat Mengembangkan Kontrol Formulir Windows Komposit.

Rekomendasi

Warisi dari UserControl kelas jika:

  • Anda ingin menggabungkan fungsionalitas beberapa kontrol Formulir Windows ke dalam satu unit yang dapat digunakan kembali.

Kontrol yang Diperluas

Anda dapat memperoleh kontrol yang diwariskan dari kontrol Formulir Windows yang ada. Dengan pendekatan ini, Anda dapat mempertahankan semua fungsionalitas yang melekat dari kontrol Formulir Windows, lalu memperluas fungsionalitas tersebut dengan menambahkan properti kustom, metode, atau fitur lainnya. Dengan opsi ini, Anda dapat mengambil alih logika cat kontrol dasar, lalu memperluas antarmuka penggunanya dengan mengubah tampilannya.

Misalnya, Anda dapat membuat kontrol yang berasal dari Button kontrol yang melacak berapa kali pengguna mengkliknya.

Dalam beberapa kontrol, Anda juga dapat menambahkan tampilan kustom ke antarmuka pengguna grafis kontrol Anda dengan mengambil alih OnPaint metode kelas dasar. Untuk tombol yang diperluas yang melacak klik, Anda dapat mengambil alih OnPaint metode untuk memanggil implementasi OnPaintdasar , lalu menggambar jumlah klik di satu sudut Button area klien kontrol.

Rekomendasi

Warisi dari kontrol Formulir Windows jika:

  • Sebagian besar fungsionalitas yang Anda butuhkan sudah identik dengan kontrol Formulir Windows yang ada.

  • Anda tidak memerlukan antarmuka pengguna grafis kustom, atau Anda ingin merancang antarmuka pengguna grafis baru untuk kontrol yang ada.

Kontrol Kustom

Cara lain untuk membuat kontrol adalah dengan membuat kontrol secara substansial dari awal dengan mewarisi dari Control. Kelas ini Control menyediakan semua fungsionalitas dasar yang diperlukan oleh kontrol, termasuk peristiwa penanganan mouse dan keyboard, tetapi tidak ada fungsionalitas khusus kontrol atau antarmuka grafis.

Membuat kontrol dengan mewarisi dari Control kelas membutuhkan lebih banyak pemikiran dan upaya daripada mewarisi dari UserControl atau kontrol Formulir Windows yang ada. Karena banyak implementasi yang ditinggalkan untuk Anda, kontrol Anda dapat memiliki fleksibilitas yang lebih besar daripada kontrol komposit atau diperluas, dan Anda dapat menyesuaikan kontrol Anda agar sesuai dengan kebutuhan Anda.

Untuk menerapkan kontrol kustom, Anda harus menulis kode untuk OnPaint peristiwa kontrol, serta kode khusus fitur apa pun yang Anda butuhkan. Anda juga dapat mengambil alih WndProc metode dan menangani pesan windows secara langsung. Ini adalah cara paling kuat untuk membuat kontrol, tetapi untuk menggunakan teknik ini secara efektif, Anda harus terbiasa dengan Microsoft Win32® API.

Contoh kontrol kustom adalah kontrol jam yang menduplikasi tampilan dan perilaku jam analog. Lukisan kustom dipanggil untuk menyebabkan tangan jam bergerak sebagai respons terhadap Tick peristiwa dari komponen internal Timer . Untuk informasi selengkapnya, lihat Cara: Mengembangkan Kontrol Formulir Windows Sederhana.

Rekomendasi

Warisi dari Control kelas jika:

  • Anda ingin memberikan representasi grafis kustom kontrol Anda.

  • Anda perlu menerapkan fungsionalitas kustom yang tidak tersedia melalui kontrol standar.

Kontrol ActiveX

Meskipun infrastruktur Formulir Windows telah dioptimalkan untuk menghosting kontrol Formulir Windows, Anda masih dapat menggunakan kontrol ActiveX. Ada dukungan untuk tugas ini di Visual Studio. Untuk informasi selengkapnya, lihat Cara: Menambahkan Kontrol ActiveX ke Formulir Windows.

Kontrol Tanpa Jendela

Teknologi Microsoft Visual Basic® 6.0dan ActiveX mendukung kontrol tanpa jendela. Kontrol tanpa jendela tidak didukung di Formulir Windows.

Pengalaman Desain Kustom

Jika Anda perlu menerapkan pengalaman waktu desain kustom, Anda dapat menulis perancang Anda sendiri. Untuk kontrol komposit, dapatkan kelas desainer kustom Anda dari ParentControlDesigner kelas atau DocumentDesigner . Untuk kontrol yang diperluas dan kustom, dapatkan kelas perancang ControlDesigner kustom Anda dari kelas .

DesignerAttribute Gunakan untuk mengaitkan kontrol Anda dengan perancang Anda. Untuk informasi selengkapnya, lihat Memperluas Dukungan Waktu Desain dan Cara: Membuat kontrol Formulir Windows yang Memanfaatkan Fitur Waktu Desain.

Baca juga