Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyebarkan Peristiwa daripada Kawalan Pengguna ke Borang Utama dalam C#?

Bagaimanakah Saya Boleh Menyebarkan Peristiwa daripada Kawalan Pengguna ke Borang Utama dalam C#?

Susan Sarandon
Lepaskan: 2025-01-04 22:09:40
asal
690 orang telah melayarinya

How Can I Propagate Events from User Controls to the Main Form in C#?

Penyebaran Acara daripada Kawalan Pengguna ke Borang Utama

Dalam reka bentuk antara muka pengguna, selalunya perlu untuk menyampaikan peristiwa dari dalam kawalan tersuai kepada borang induk atau tingkap. Untuk mencapai matlamat ini, kita mesti mencipta mekanisme untuk acara menggelegak, membenarkan peristiwa terkawal mencapai konteks peringkat lebih tinggi.

Sebagai contoh, pertimbangkan kawalan pengguna yang mengandungi kawalan angka atas/bawah (NUD). Apabila nilai NUD berubah, kami mahu borang utama mengemas kini tetingkap paparan dengan sewajarnya. Walau bagaimanapun, peristiwa dalam kawalan pengguna biasanya dikendalikan oleh kawalan itu sendiri.

Untuk menangani perkara ini, kami mencipta pengendali acara untuk kawalan pengguna yang tercetus apabila peristiwa berlaku dalam kawalan. Dengan berbuat demikian, kami boleh menyebarkan acara ke atas rantaian dan ke dalam bentuk utama.

Pelaksanaan dalam C#

Dalam kelas kawalan pengguna, kami mentakrifkan acara untuk acara Button1_Click. Acara ini akan dinaikkan apabila butang pada kawalan pengguna diklik. Kami juga mentakrifkan pengendali acara untuk acara tersebut.

[Browsable(true)] [Category("Action")] 
[Description("Invoked when user clicks button")]
public event EventHandler ButtonClick;

protected void Button1_Click(object sender, EventArgs e)
{
    //bubble the event up to the parent
    if (this.ButtonClick!= null)
        this.ButtonClick(this, e);               
}
Salin selepas log masuk

Dalam kelas borang utama, kami melanggan acara ButtonClick kawalan pengguna. Apabila butang pada kawalan pengguna diklik, pengendali acara UserControl_ButtonClick dalam bentuk utama akan dicetuskan.

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event 
}
Salin selepas log masuk

Dengan menggunakan pendekatan ini, kami membolehkan penyebaran peristiwa daripada kawalan pengguna ke borang utama , membolehkan pengendalian dan tindak balas yang lancar kepada interaksi pengguna.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyebarkan Peristiwa daripada Kawalan Pengguna ke Borang Utama dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan