Bagikan melalui


Panduan: Mewarisi dari Kontrol Formulir Windows dengan C#

Dengan C#, Anda dapat membuat kontrol kustom yang kuat melalui pewarisan. Melalui pewarisan, Anda dapat membuat kontrol yang mempertahankan semua fungsionalitas kontrol Formulir Windows standar yang melekat tetapi juga menggabungkan fungsionalitas kustom. Dalam panduan ini, Anda akan membuat kontrol yang diwariskan sederhana yang disebut ValueButton. Tombol ini akan mewarisi fungsionalitas dari kontrol Formulir Windows Button standar, dan akan mengekspos properti kustom yang disebut ButtonValue.

Membuat Proyek

Saat membuat proyek baru, Anda menentukan namanya untuk mengatur namespace layanan akar, nama rakitan, dan nama proyek, dan untuk memastikan bahwa komponen default akan berada di namespace yang benar.

Untuk membuat pustaka kontrol ValueButtonLib dan kontrol ValueButton

  1. Di Visual Studio, buat proyek Pustaka Kontrol Formulir Windows baru, dan beri nama ValueButtonLib.

    Nama proyek, ValueButtonLib, juga ditetapkan ke namespace layanan akar secara default. Namespace layanan akar digunakan untuk memenuhi syarat nama komponen dalam rakitan. Misalnya, jika dua rakitan menyediakan komponen bernama ValueButton, Anda dapat menentukan komponen Anda ValueButton menggunakan ValueButtonLib.ValueButton. Untuk informasi selengkapnya, lihat Namespace layanan.

  2. Di Penjelajah Solusi, klik kanan UserControl1.cs, lalu pilih Ganti Nama dari menu pintasan. Ubah nama file menjadi ValueButton.cs. Klik tombol Ya saat Anda ditanya apakah Anda ingin mengganti nama semua referensi ke elemen kode 'UserControl1'.

  3. Di Penjelajah Solusi, klik kanan ValueButton.cs dan pilih Tampilkan Kode.

  4. class Temukan baris pernyataan, public partial class ValueButton, dan ubah jenis dari mana kontrol ini mewarisi dari UserControl ke Button. Ini memungkinkan kontrol warisan Anda untuk mewarisi semua fungsionalitas Button kontrol.

  5. Di Penjelajah Solusi, buka simpul ValueButton.cs untuk menampilkan file kode yang dihasilkan perancang, ValueButton.Designer.cs. Buka file ini di Editor Kode.

  6. InitializeComponent Temukan metode dan hapus baris yang menetapkan AutoScaleMode properti . Properti ini tidak ada dalam Button kontrol.

  7. Dari menu File, pilih Simpan Semua untuk menyimpan proyek.

    Catatan

    Desainer visual tidak lagi tersedia. Button Karena kontrol melakukan lukisannya sendiri, Anda tidak dapat memodifikasi penampilannya di perancang. Representasi visualnya akan sama persis dengan kelas yang diwarisinya (yaitu, Button) kecuali dimodifikasi dalam kode. Anda masih dapat menambahkan komponen, yang tidak memiliki elemen UI, ke permukaan desain.

Menambahkan Properti ke Kontrol yang Diwariskan

Salah satu kemungkinan penggunaan kontrol Formulir Windows yang diwariskan adalah pembuatan kontrol yang identik dalam tampilan dan nuansa kontrol Formulir Windows standar, tetapi mengekspos properti kustom. Di bagian ini, Anda akan menambahkan properti yang dipanggil ButtonValue ke kontrol Anda.

Untuk menambahkan properti Nilai

  1. Di Penjelajah Solusi, klik kanan ValueButton.cs, lalu klik Tampilkan Kode dari menu pintasan.

  2. Perhatikan pernyataannya class. Segera setelah {, ketik kode berikut:

    // Creates the private variable that will store the value of your
    // property.
    private int varValue;
    // Declares the property.
    public int ButtonValue
    {
       // Sets the method for retrieving the value of your property.
       get
       {
          return varValue;
       }
       // Sets the method for setting the value of your property.
       set
       {
          varValue = value;
       }
    }
    

    Kode ini mengatur metode tempat ButtonValue properti disimpan dan diambil. Pernyataan get menetapkan nilai yang dikembalikan ke nilai yang disimpan dalam variabel varValueprivat , dan set pernyataan menetapkan nilai variabel privat dengan menggunakan value kata kunci.

  3. Dari menu File, pilih Simpan Semua untuk menyimpan proyek.

Menguji kontrol

Kontrol bukan proyek yang berdiri sendiri; mereka harus dihosting dalam kontainer. Untuk menguji kontrol, Anda harus menyediakan proyek pengujian untuk dijalankan. Anda juga harus membuat kontrol Anda dapat diakses oleh proyek pengujian dengan membangun (mengkompilasinya). Di bagian ini, Anda akan membangun kontrol dan mengujinya dalam Formulir Windows.

Untuk membangun kontrol Anda

Pada menu Build, klik Solusi Build. Build harus berhasil tanpa kesalahan kompilator atau peringatan.

Untuk membuat proyek pengujian

  1. Pada menu File , arahkan ke Tambahkan lalu klik Proyek Baru untuk membuka kotak dialog Tambahkan Proyek Baru.

  2. Pilih simpul Windows, di bawah simpul Visual C#, dan klik aplikasi Formulir Windows.

  3. Dalam kotak Nama , masukkan Uji.

  4. Di Penjelajah Solusi, klik kanan simpul Referensi untuk proyek pengujian Anda, lalu pilih Tambahkan Referensi dari menu pintasan untuk menampilkan kotak dialog Tambahkan Referensi.

  5. Klik tab berlabel Proyek. Proyek ValueButtonLib Anda akan tercantum di bawah Nama Proyek. Klik dua kali proyek untuk menambahkan referensi ke proyek pengujian.

  6. Di Penjelajah Solusi, klik kanan Uji dan pilih Bangun.

Untuk menambahkan kontrol Anda ke formulir

  1. Di Penjelajah Solusi, klik kanan Form1.cs dan pilih Tampilkan Perancang dari menu pintasan.

  2. Di Kotak Alat, pilih Komponen ValueButtonLib. Klik dua kali ValueButton.

    ValueButton muncul pada formulir.

  3. Klik kanan ValueButton dan pilih Properti dari menu pintasan.

  4. Di jendela Properti , periksa properti kontrol ini. Perhatikan bahwa properti tersebut identik dengan properti yang diekspos oleh tombol standar, kecuali bahwa ada properti tambahan, ButtonValue.

  5. Atur properti ButtonValue ke 5.

  6. Di tab Semua Formulir Windows kotak Alat, klik dua kali Label untuk menambahkan Label kontrol ke formulir Anda.

  7. Relokasi label ke tengah formulir.

  8. Klik dua valueButton1kali .

    Editor Kode terbuka untuk peristiwa tersebutvalueButton1_Click.

  9. Sisipkan baris kode berikut.

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. Di Penjelajah Solusi, klik kanan Uji, dan pilih Atur sebagai Proyek Startup dari menu pintasan.

  11. Dari menu Debug , pilih Mulai Penelusuran Kesalahan.

    Form1 Muncul.

  12. Klik valueButton1.

    Angka '5' ditampilkan dalam label1, menunjukkan bahwa ButtonValue properti kontrol warisan Anda telah diteruskan ke label1 melalui valueButton1_Click metode . Dengan demikian kontrol Anda ValueButton mewarisi semua fungsionalitas tombol Formulir Windows standar, tetapi mengekspos properti kustom tambahan.

Baca juga