Ketika kita ingin memanggil form2 dari form1 biasanya kita menggunakan fungsi seperti ini :
Form2 frm2 = new Form2(); frm2.Show();
kode diatas memiliki output dimana form2 tampil dan form1 tetap ada..Nah jika kita memanggil fungsi tsb lebih dari sekali maka jumlah form yg tampil pun akan bertambah. Cara seperti ini kurang efektif sehingga kita sering menambahkan kode this.Close(); atau this.Hide(); untuk menutup form1 dengan tujuan membatasi user . Namun kalau data dari form2 bergantung pada form1, tentu saja kurang cocok jika hanya menambah kode tsb... Penggunaan fungsi showdialog(); memang cukup membantu karena kita tidak perlu lagi menutup form1 setelah membuka form2..Akan tetapi fungsi tersebut tidak mengijinkan kita untuk mengakses lebih dari satu form sehingga kita tidak bisa mengklik form1 ketika form2 tampil.. Masalah seperti ini dapat kita atasi dengan cara memeriksa nama form..jika form dengan nama tertentu belum terbuka maka akan dibuat instance untuk form baru tetapi jika sudah ada kita cukup menaruh fungsi Focus pada form tersebut agar tidak tampil lebih dari satu kali..
Berikut contoh kodingnya :private void button1_Click(object sender, EventArgs e){ bool terbuka = false; foreach (Form f in Application.OpenForms) { if (f.Name == "Form2") { terbuka = true; f.Focus(); break; } } if (terbuka == false) { Form2 f2 = new Form2(); f2.Show(); } }
Sumber : http://batikpress.com
Tidak ada komentar:
Posting Komentar