Dengan asumsi Anda meminta WinForms, Anda dapat menggunakan acara FormClosing () . Acara FormClosing () dipicu setiap saat formulir ditutup.
Untuk mendeteksi apakah pengguna mengklik X atau CloseButton Anda, Anda mungkin mendapatkannya melalui objek pengirim. Cobalah untuk mentransmisikan pengirim sebagai kontrol Tombol, dan verifikasi mungkin untuk namanya "CloseButton", misalnya.
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
if (string.Equals((sender as Button).Name, @"CloseButton"))
else
}
Jika tidak, saya tidak pernah perlu membedakan apakah X atau CloseButton diklik, karena saya ingin melakukan sesuatu yang spesifik pada acara FormClosing, seperti menutup semua MdiChildren sebelum menutup MDIContainerForm, atau memeriksa acara untuk perubahan yang belum disimpan. Dalam keadaan ini, menurut saya, kita tidak perlu membedakan tombol mana pun.
Menutup dengan ALT+ F4juga akan memicu acara FormClosing (), karena mengirimkan pesan ke Formulir yang bertuliskan tutup. Anda dapat membatalkan acara dengan menyetel
FormClosingEventArgs.Cancel = true.
Dalam contoh kami, ini akan diterjemahkan menjadi
e.Cancel = true.
Perhatikan perbedaan antara acara FormClosing () dan FormClosed () .
FormClosing terjadi ketika formulir menerima pesan untuk ditutup, dan memverifikasi apakah ada sesuatu yang harus dilakukan sebelum ditutup.
FormClosed terjadi saat formulir benar-benar ditutup, jadi setelah itu ditutup.
Apakah ini membantu?