Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melepasi Pembolehubah Antara Borang dalam Aplikasi Borang Windows?

Bagaimanakah Saya Boleh Melepasi Pembolehubah Antara Borang dalam Aplikasi Borang Windows?

Patricia Arquette
Patricia Arquetteasal
2025-01-01 10:28:11246semak imbas

How Can I Pass a Variable Between Forms in Windows Forms Applications?

Melalui Pembolehubah Antara Borang dalam Borang Windows

Dalam aplikasi Windows Forms, menghantar data antara borang boleh dicapai menggunakan perwakilan dan acara. Masalah timbul apabila satu borang, borang "anak", memerlukan akses kepada pembolehubah daripada borang "ibu bapa".

Untuk menyelesaikannya, pertimbangkan untuk menggunakan perwakilan untuk menghantar data daripada borang induk kepada borang anak. Dalam borang induk, tentukan perwakilan dan pengendali acara untuknya. Apabila butang untuk membuka borang anak diklik, cipta objek hujah peristiwa yang membawa nilai pembolehubah dan naikkan acara.

Dalam borang anak, langgan acara dalam pembina. Apabila peristiwa berlaku, dapatkan semula nilai pembolehubah daripada objek argumen acara. Ubah suai kawalan atau sifat borang anak untuk memaparkan teks pembolehubah secara dinamik.

Berikut ialah contoh kod dalam C#:

// Parent Form
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();
        settingsForm.ShowDialog();
    }

    private void OnPageInfoRetrieved(PageInfoEventArgs args)
    {
        if (PageInfoRetrieved != null)
            PageInfoRetrieved(this, args);
    }
}

// Child Form
public partial class SettingsForm : Form
{
    private string m_Data; // Variable to store the passed value

    public SettingsForm()
    {
        InitializeComponent();
        Subscribe to PageInfoRetrieved event
    }

    private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e)
    {
        m_Data = e.Value;
        // Update controls or properties in this form
    }

    public string Data => m_Data; // Expose the variable as a property
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melepasi Pembolehubah Antara Borang dalam Aplikasi Borang Windows?. 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