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

来源:互联网 发布:怎么设计淘宝店标 编辑:程序博客网 时间:2024/05/17 08:28

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



0 0
原创粉丝点击