[C#][VB.NET]关闭程序时显示对话框,用以再次确认是否关闭
[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]关闭程序时显示对话框,用以再次确认是否关闭 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |