[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]关闭程序时显示对话框,用以再次确认是否关闭
原文地址:https://www.cnblogs.com/petewell/p/11516590.html
时间: 2024-10-08 12:51:06