If-Koubou

Pass Variables antara Windows Forms Windows tanpa ShowDialog ()

Pass Variables antara Windows Forms Windows tanpa ShowDialog () (Bagaimana caranya)

Ketika Anda memprogram aplikasi Windows Forms, Anda akan selalu perlu mendapatkan variabel dari jendela formulir kedua, seperti formulir 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 untuk melakukan hal lain hingga mereka menutup jendela formulir kedua. Ini tidak akan berfungsi dengan baik untuk dialog find / replace, misalnya. Ini juga tidak akan berfungsi dengan baik untuk bentuk popup yang digambar sendiri.

Cara cepat untuk melewati variabel antara formulir menggunakan Delegasi. Anda dapat mengatur eventhandler untuk acara Penutupan dari formulir kedua, dan menangani acara dalam formulir pertama. Ini memungkinkan Anda untuk menangkap variabel sebelum jendela formulir kedua ditutup.

Untuk latihan ini, kita akan berasumsi bahwa kita memiliki dua bentuk:

MainForm

OptionsForm

Kita akan lebih jauh mengasumsikan bahwa kita telah mengklik semacam tombol yang membuka OptionsForm dengan Show () pemanggilan metode. Sekarang mari kita lihat keajaibannya:

…. snip….

PilihanForm theform = baru OptionsForm ();
theform.Closing + = new CancelEventHandler (theform_Closing);
theform.Show ();

private void theform_Closing (pengirim objek, CancelEventArgs e)

Pengatur optionsForm theform = (OptionsForm);

// Ambil variabel dari formulir opsi. Formulir opsi harus menetapkan variabel ini sebelum ditutup, dan variabel harus ditandai sebagai publik.
string localvar = theform.thestringvariable;

Hanya itu saja.