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
Barbara Streisandasal
2025-01-03 21:34:39126semak imbas

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;
}

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();
}

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;
        }
    }
}

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;
    }
}

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

SettingsForm settingsForm = new SettingsForm(SomeString);

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:
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