Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengirim Data dengan Cekap Antara Borang Windows?

Bagaimana untuk Mengirim Data dengan Cekap Antara Borang Windows?

DDD
DDDasal
2025-01-03 20:46:40916semak imbas

How to Efficiently Pass Data Between Windows Forms?

Melalui Data Antara Borang Windows

Dalam aplikasi Windows Forms, selalunya perlu berkongsi data antara berbilang borang. Apabila satu borang membuka yang lain, ia mungkin perlu menyampaikan maklumat khusus untuk digunakan oleh borang baharu. Satu pendekatan biasa untuk mencapai ini adalah melalui perwakilan.

Penerangan Masalah

Dalam senario tertentu, borang utama mempunyai butang bernama "Tetapan" yang membuka borang kanak-kanak dipanggil "Borang Tetapan". Keperluan adalah untuk menghantar pembolehubah ke Borang Tetapan apabila ia dibuka supaya nilai pembolehubah boleh dipaparkan dalam bentuk baharu.

Pendekatan Perwakilan

Untuk menyelesaikan masalah ini, anda boleh menentukan perwakilan dalam bentuk utama yang menerima pengendali acara tersuai. Pengendali acara, seterusnya, menghantar pembolehubah kepada borang anak melalui kelas argumen acara.

Dalam coretan kod yang anda berikan, perwakilan dan acara berikut ditakrifkan dalam kelas MainForm:

public partial class MainForm : Form
{
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
    public event PageInfoHandler PageInfoRetrieved;
    ...
}

Kelas PageInfoEventArgs mesti ditakrifkan untuk memegang nilai pembolehubah:

public class PageInfoEventArgs : EventArgs
{
    public string SomeString;
    
    public PageInfoEventArgs(string someString)
    {
        SomeString = someString;
    }
}

Apabila Butang "Tetapan" diklik dalam bentuk utama, contoh PageInfoEventArgs dibuat dengan nilai pembolehubah dan acara PageInfoRetrieved dicetuskan. Pengendali acara dalam Borang Tetapan kemudiannya akan menerima pembolehubah dan boleh menggunakannya untuk memaparkan nilai.

Pendekatan Pembina

Pendekatan lain ialah dengan melepasi pembolehubah sebagai parameter kepada pembina Borang Tetapan. Borang itu kemudiannya boleh menggunakan parameter pembina dalam logiknya.

Sebagai contoh, anda boleh mempunyai:

public class SettingsForm : Form
{
    private string _variable;
    
    public SettingsForm(string variable)
    {
        _variable = variable;
    }
    
    ... // Use _variable as needed
}

Dalam Borang Utama, anda akan mencipta Borang Tetapan sebagai:

SettingsForm settingsForm = new SettingsForm("value");
settingsForm.ShowDialog();

Atas ialah kandungan terperinci Bagaimana untuk Mengirim Data dengan Cekap Antara 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