[Archieve] Closing Form Confirm


Diambil dari situs saya yg lama : http://herianto.web.id

Pada tutorial sebelumnya aku ud nulis bahwa ada bedanya antara event Form_Closing dan Form_Closed. Nah sekarang implementasinya kita mau pake Form_Closing dan bukan form_Closed. Tanya kenapa? Jawabanya karena kita ingin memberikan konfirmasi apakah “form jadi ditutup atau tidak”, lha kalo ud terlanjur ketutup ngapain konfirmasi lagi?.

Saya ulangi lagi, Event Form_Closing terjadi pada saat proses akan mengclose form, sedangkan Form_Closed terjadi setelah proses close form selesai.

Intinya disini yang akan kita gunakan adalah objek MessageBox. Objek ini banyak gunanya lho, mulai dari bikin konfirmasi, tampilan info sampai buat nampilin pesan error juga.

Yang harus kita lakukan adalah membuat fungsi Form1_Closing untuk menghandle event saat user mengclick tanda silang (X) dipojok kanan atas form. Mengenai cara membuat event bisa dilihat pada post berjudul : Close/Load Form Opacity Effect
Perhatikan juga bahwa pada Form1_Closing eventnya bernama System.ComponentModel.CancelEventArgs e. Panjang juga ya..yang jelas tuh beda sama punyannya Form1_Closed yang cuma bernama System.EventArgs e. Nah inilah kuncinya, untuk membatalkan penutupan form kita dapat menset property cancel dari objek e menjadi true sehingga membatalkan aksi closing form. Untuk gampangnya liat aja deh isi codenya :

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    if(MessageBox.Show("Apa anda yakin?","Confirm",MessageBoxButtons.YesNo)==DialogResult.Yes)
 {
 	while(this.Opacity!=0)
 	{
       	 this.Opacity-=0.05;
 		System.Threading.Thread.Sleep(50);
 		Application.DoEvents();
 	}
 }
 else
 	e.Cancel=true;
 }
}

Disitu if MessageBox…bla-bla… maksudnya tampilkan sebuah message box dengan pesan “Apa Anda Yakin?”, dengan judul form “Confirm” dan 2 buah tombol yaitu Yes dan No. Lalu jika user memilih Yes (alias yakin atau berarti terjadi DialogResult.Yes) maka aksi diteruskan dengan memanggil efek close seperti tutorial sebelumnya. Ini ga gtu penting soalnya si user emang mau ditutup kok formnya. Nah baru jadi masalah klo user ga jadi mau nutup formnya, maka masuk ke else dan set property cancel dari e menjadi true sehingga keseluruhan event ini dibatalkan dan proses penutupan form pun batal. Jadi intinya e.Cancel mengendalikan apakah form jadi ditutup ato nggak. Klo jadi ditutup secara default e.Cancel adalah false. Cukup jelas kan? Boleh kirim email deh klo kurang jelas…Download source code pada link dibawah ini (jangan lupa ganti ekstensi ke .zip dulu)
Code ClosingForm dalam C#.Net

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: