我是靠谱客的博主 苗条冬日,最近开发中收集的这篇文章主要介绍C#窗体退出事件提示对话框解决方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

         最近刚刚学习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#窗体退出事件提示对话框解决方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部