概述
最近刚刚学习C#,在登录父窗体主界面关闭事件写入代码:
if (DialogResult.Yes == MessageBox.Show("是否关闭本系统?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{application.exit();
}
else
{
e.Cancel = true;
}
出现两次退出对话框,提示是否退出系统,第一次点击退出后弹出第二个对话点击【否】出现无法退出系统,隐藏的登录界面无法退出,如果点击【是】可以退出系统,但是弹出两次退出窗体还是比较麻烦。如图
第一个弹出界面 第二个弹出界面
对比了几个窗体退出的事件
1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
4.System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
将Application.Exit(); 更换成System.Environment.Exit(0); 代码如下:
if (DialogResult.Yes == MessageBox.Show("是否关闭本系统?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{
System.Environment.Exit(0);
}
else
{
e.Cancel = true;
}
问题得到完美解决。得到我想要的结果:只出现一个弹出窗体,点击【是】退出系统,点击【否】停留在主界面中。
此贴希望对大家学习C#开发有所帮助
最后
以上就是苗条冬日为你收集整理的C#窗体退出事件提示对话框解决方案的全部内容,希望文章能够帮你解决C#窗体退出事件提示对话框解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复