C#窗体退出事件提示对话框解决方案

    xiaoxiao2025-08-27  30

             最近刚刚学习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#开发有所帮助

    转载请注明原文地址: https://ju.6miu.com/read-1302029.html
    最新回复(0)