Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Meluluskan Pembolehubah Antara Borang Windows Menggunakan Perwakilan dan Acara atau Pembina?

Bagaimana untuk Meluluskan Pembolehubah Antara Borang Windows Menggunakan Perwakilan dan Acara atau Pembina?

Barbara Streisand
Lepaskan: 2025-01-03 21:34:39
asal
176 orang telah melayarinya

How to Pass Variables Between Windows Forms Using Delegates and Events or Constructors?

Melalui Pembolehubah antara Borang Borang Windows menggunakan Perwakilan dan Acara

Dalam senario ini, di mana anda mempunyai borang utama dan anak "tetapan" bentuk, pendekatan biasa untuk menghantar pembolehubah kepada bentuk kanak-kanak adalah melalui penggunaan perwakilan dan acara.

Langkah 1: Mulakan Perwakilan dan Acara

Dalam borang utama anda, buat perwakilan dan acara untuk mengendalikan pemindahan data:

public partial class MainForm : Form
{
    /// <summary>
    /// Delegate to send data between forms
    /// </summary>
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);

    /// <summary>
    /// Event of the delegate
    /// </summary>
    public event PageInfoHandler PageInfoRetrieved;
}
Salin selepas log masuk

Langkah 2: Lulus Pembolehubah dalam Acara Pengendali

Apabila anda mengklik butang "Tetapan" pada borang utama, buat contoh hujah acara dengan pembolehubah yang anda mahu luluskan dan tingkatkan acara:

private void toolStripBtnSettings_Click(object sender, EventArgs e)
{
    PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
    this.OnPageInfoRetrieved(args);

    SettingsForm settingsForm = new SettingsForm();
    settingsForm.ShowDialog();
}
Salin selepas log masuk

Langkah 3: Dapatkan Pembolehubah dalam Borang Kanak-kanak

Dalam borang "tetapan" anda, kendalikan acara itu dengan mengatasi pengendali acara yang sepadan:

public partial class SettingsForm : Form
{
    protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);

        // Retrieve the event arguments
        PageInfoEventArgs args = this.Tag as PageInfoEventArgs;
        if (args != null)
        {
            // Access the passed variable
            string receivedText = args.PageInfo;
        }
    }
}
Salin selepas log masuk

Menggunakan Pembina untuk Lulus Pembolehubah

Sebagai alternatif, anda juga boleh menghantar pembolehubah terus kepada pembina borang anak:

public partial class SettingsForm : Form
{
    private string receivedText;

    public SettingsForm(string text)
    {
        this.receivedText = text;
    }
}
Salin selepas log masuk

Dalam kes ini, anda akan mencipta contoh bentuk anak dengan pembolehubah sebagai hujah:

SettingsForm settingsForm = new SettingsForm(SomeString);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Pembolehubah Antara Borang Windows Menggunakan Perwakilan dan Acara atau Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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