Lulus Pembolehubah antara Windows Forms Windows tanpa ShowDialog ()
Apabila anda memprogramkan aplikasi Windows Forms, anda akan selalu perlu untuk mendapatkan pemboleh ubah dari tetingkap bentuk kedua, seperti bentuk pilihan atau permintaan carian pop timbul.
Kebanyakan panduan di luar sana akan memberitahu anda bahawa anda perlu membuka borang kedua dengan ShowDialog (), yang menghalang pengguna daripada melakukan apa-apa lagi sehingga mereka menutup tetingkap bentuk kedua. Ini tidak akan berfungsi dengan baik untuk mencari / menggantikan dialog, contohnya. Ia juga tidak berfungsi dengan baik untuk bentuk pop timbul yang dibuat khusus.
Cara cepat untuk lulus pembolehubah antara borang menggunakan Delegasi. Anda boleh menetapkan eventhandler untuk acara Penutupan borang kedua, dan mengendalikan acara dalam bentuk pertama. Ini membolehkan anda menangkap pembolehubah sebelum tetingkap borang kedua ditutup.
Untuk latihan ini, kita akan mengandaikan bahawa kita mempunyai dua bentuk:
MainForm
OptionsForm
Kami akan terus menganggap bahawa kami telah mengklik beberapa jenis butang yang membuka OptionsForm dengan panggilan () kaedah Show (). Sekarang mari kita lihat sihir:
.... snip ... .
OptionsForm theform = new OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();void peribadi theform_Closing (pengirim objek, CancelEventArgs e)
OptionsForm theform = (OptionsForm) penghantar;
/ / Ambil pemboleh ubah dari borang pilihan. Borang opsyen harus menetapkan pembolehubah ini sebelum ia ditutup, dan pembolehubah harus ditandakan sebagai orang awam.
string localvar = theform.thestringvariable;
Itulah yang ada padanya.