Pass Variables antara Windows Forms Windows tanpa ShowDialog ()
Ketika Anda sedang memprogram aplikasi Windows Forms, Anda selalu perlu mendapatkan variabel dari jendela form kedua, seperti form opsi atau prompt pencarian popup.
Sebagian besar panduan di luar sana akan memberi tahu Anda bahwa Anda harus membuka formulir kedua dengan ShowDialog (), yang memblokir pengguna dari melakukan hal lain sampai mereka menutup jendela formulir kedua. Misalnya, ini tidak akan berfungsi dengan baik untuk dialog temukan / ganti. Itu juga tidak akan bekerja dengan baik untuk formulir popup yang dibuat khusus.
Cara cepat untuk mengirimkan variabel antara formulir menggunakan Delegasi. Anda bisa mengatur eventhandler untuk acara Penutupan dari formulir kedua, dan menangani acara di formulir pertama. Ini memungkinkan Anda untuk menangkap variabel sebelum jendela formulir kedua ditutup.
Untuk latihan ini, kita akan menganggap bahwa kita memiliki dua bentuk:
MainForm
OptionsForm
Kita akan mengasumsikan lebih lanjut bahwa kita telah mengklik semacam tombol yang membuka OptionsForm dengan pemanggilan metode Show (). Sekarang mari kita lihat keajaibannya:
… menggunting… .
OptionsForm theform = new OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();private void theform_Closing (pengirim objek, CancelEventArgs e)
OptionsForm theform = (OptionsForm) pengirim;
// Ambil variabel dari formulir opsi. Formulir opsi harus mengatur variabel ini sebelum ditutup, dan variabel harus ditandai sebagai publik.
string localvar = theform.thestringvariable;
Itu semua yang ada untuk itu.