Melalui Data Antara Borang Windows Menggunakan Perwakilan
Dalam aplikasi Windows Forms, apabila bekerja dengan berbilang borang, ia sering menjadi perlu untuk menghantar data antara mereka. Pendekatan biasa untuk mencapai ini adalah melalui perwakilan. Begini cara anda boleh melaksanakan penghantaran data menggunakan perwakilan:
Mencipta Perwakilan
Pertama, anda perlu mencipta perwakilan yang akan berfungsi sebagai kaedah panggil balik untuk pemindahan data. Dalam C#, ini boleh dilakukan seperti berikut:
public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
Perwakilan ini mengisytiharkan kaedah yang mengambil dua parameter: objek penghantar (biasanya borang menghantar data) dan objek hujah peristiwa (yang mengandungi objek sebenar data).
Menggunakan Perwakilan
Dalam borang utama, anda boleh buat contoh perwakilan dan tingkatkan acara apabila anda mahu menghantar data ke borang anak. Contohnya:
public partial class MainForm : Form { // Declare the delegate instance public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
Mendapatkan Data
Dalam borang anak (dalam kes ini, Borang Tetapan), anda boleh melanggan acara perwakilan untuk menerima data. Ini boleh dilakukan dalam pembina borang kanak-kanak atau dalam kod permulaannya. Contohnya:
public class SettingsForm : Form { public SettingsForm() { // Subscribe to the delegate event if (MainForm.PageInfoRetrieved != null) MainForm.PageInfoRetrieved += new PageInfoHandler(OnPageInfoRetrieved); } private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e) { // This method will be called when the PageInfoEventArgs is raised // in the main form. You can access the data from the event argument here. // ... } }
Menggunakan Data
Setelah anda mendapatkan semula data dalam borang anak, anda boleh menggunakan argumen acara yang disediakan untuk mengakses data sebenar . Dalam contoh ini, data dihantar sebagai harta objek PageInfoEventArgs. Sebagai contoh, anda boleh menggunakannya seperti ini:
// In the SettingsForm private void DisplayData() { // Get the data from the event arguments string data = e.Data; // Display or use the data in the child form // ... }
Dengan mengikuti langkah ini, anda boleh menghantar data dengan cekap antara berbilang Borang Windows menggunakan perwakilan, membolehkan komunikasi dan pertukaran data antara borang dalam aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data Antara Borang Windows Menggunakan Perwakilan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!