Lulus Pemboleh ubah antara Windows Forms Windows tanpa ShowDialog ()

Video: Lulus Pemboleh ubah antara Windows Forms Windows tanpa ShowDialog ()

Video: Lulus Pemboleh ubah antara Windows Forms Windows tanpa ShowDialog ()
Video: Задачи обслуживания Windows 10 2024, Mac
Lulus Pemboleh ubah antara Windows Forms Windows tanpa ShowDialog ()
Lulus Pemboleh ubah antara Windows Forms Windows tanpa ShowDialog ()
Anonim

Apabila anda mengatur aplikasi Windows Forms, anda akan selalu perlu untuk mendapatkan pemboleh ubah dari tetingkap bentuk kedua, seperti bentuk pilihan atau permintaan carian popup.

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 Tunjukkan () kaedah panggilan. Sekarang mari kita lihat sihir:

……. snip…….

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

}

private void theform_Closing(object sender, CancelEventArgs e) {

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

Itu sahaja yang ada padanya.

Disyorkan: