[C#][VB.NET]关闭表单时显示对话框,用以再次确认是否关闭 1. 问题描述 关闭程序时显示对话框,用以再次确认是否关闭 2. 方法 只要在 Form Closing 事件,显示 MessageBox,并且当使用者选择
[C#][VB.NET]关闭表单时显示对话框,用以再次确认是否关闭
1. 问题描述
关闭程序时显示对话框,用以再次确认是否关闭
2. 方法
只要在 Form Closing 事件,显示 MessageBox,并且当使用者选择 否 时,让 e.Cancel = true 即可
C# 程序
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否确定要关闭程序", "关闭程序", MessageBoxButtons.YesNo) == DialogResult.No) { e.Cancel = true; } }
VB.NET 程序
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing If MessageBox.Show("是否确定要关闭程序", "关闭程序", MessageBoxButtons.YesNo) = DialogResult.No Then e.Cancel = True End If End Sub
3. 执行结果
程序关闭时,跳出如下图的对话框,按是(Y)则关闭程序,按否(N)则不关闭程序
4. 附注
CloseReason 枚举类型 : 指定关闭表单的原因 (此部分感谢 蹂躏 的提醒)
关闭表单时,可以透过 CloseReason 指定关闭表单的原因
没有指定时,在电脑关机时,想要强制关闭此程序,而关闭程序时,会执行 Form Closing 事件,此时弹出对话框,导致电脑关机中断。
以下程序将 CloseReason 的部分补上 :
C# 程序
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason != CloseReason.WindowsShutDown) { if (MessageBox.Show("是否确定要关闭程序", "关闭程序", MessageBoxButtons.YesNo) == DialogResult.No) { e.Cancel = true; } } }
VB.NET 程序
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing If (e.CloseReason <> CloseReason.WindowsShutDown) Then If MessageBox.Show("是否确定要关闭程序", "关闭程序", MessageBoxButtons.YesNo) = DialogResult.No Then e.Cancel = True End If End If End Sub
5. 参考
程序执行时,使用者执行关机动作,无法正常关机问题
程序关闭 继续执行
表单右上角之关闭功能
原文:大专栏 [C#][VB.NET]关闭程序时显示对话框,用以再次确认是否关闭