Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menghantar Data Antara Borang Windows Menggunakan Perwakilan?

Bagaimana untuk Menghantar Data Antara Borang Windows Menggunakan Perwakilan?

DDD
Lepaskan: 2025-01-03 19:18:42
asal
779 orang telah melayarinya

How to Pass Data Between Windows Forms Using Delegates?

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);
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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.
        // ...
    }
}
Salin selepas log masuk

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
    // ...
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan