Melalui Data Antara Borang Windows
Apabila menguruskan berbilang borang dalam aplikasi Windows Forms, anda mungkin menghadapi situasi di mana anda perlu berkongsi data antara mereka. Artikel ini menangani isu menghantar pembolehubah daripada borang utama kepada borang "tetapan", membenarkan borang baharu memaparkan maklumat tersebut.
Menggunakan Perwakilan dan Pengendali Acara
Kod yang anda berikan dalam borang utama menggunakan perwakilan dan pengendali acara untuk menghantar data ke borang tetapan. Perwakilan ialah jenis yang mentakrifkan tandatangan untuk kaedah dengan parameter input dan output tertentu. Dengan menugaskan perwakilan kepada pengendali acara, anda boleh mendaftarkan kaedah untuk digunakan apabila acara itu berlaku.
Dalam kes ini, borang utama mencipta PageInfoHandler perwakilan dengan parameter input jenis PageInfoEventArgs. Kelas PageInfoEventArgs mengandungi data (dalam kes ini, rentetan) yang anda mahu hantar ke borang tetapan. Apabila butang "Tetapan" diklik, pengendali acara (OnPageInfoRetrieved) dipanggil, yang memanggil kaedah berdaftar (dalam kes ini, PageInfoRetrieved).
Mengambil Data dalam Borang Tetapan
Dalam borang tetapan, anda perlu menentukan sifat atau kaedah yang membolehkan anda mengakses data yang diluluskan daripada bentuk utama. Dalam penyelesaian yang dicadangkan, pembina digunakan untuk menghantar rentetan ke borang tetapan. Pembina ini akan menyimpan rentetan dalam pembolehubah ahli persendirian, yang kemudiannya boleh diakses melalui kaedah pengambil awam.
Contoh Kod Lengkap
Contoh kod lengkap adalah seperti berikut:
MainForm.cs
public partial class MainForm : Form { public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(SomeString); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
SettingsForm.cs
public class SettingsForm : WinForm { private string m_Data; public SettingsForm(string data) { m_Data = data; } public string Data { get { return m_Data; } } }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Data Antara Borang Windows Menggunakan Perwakilan dan Pengendali Acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!