FormClosing

private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (bl == false)
            {
                DialogResult dr = MessageBox.Show("不需要保存吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (dr == DialogResult.OK)
                {
                    Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            }
            else
            {
                Application.Exit();
            }
           
        }
点确定按钮是要点两下?窗体才关闭?

Application.Exit();又去调用了formclosing事件哈

用这个绝对不会出现上面的问题哈

environment.exit(environment.exitcode)

当用户点击窗口右上角的X时,会先后引发FormClosing和FormClosed事件,在FormClosing事件中可将e.Cancel设为true来取消窗口的关闭,但是之后再用Form.Close方法关闭窗体时,FormClosing事件仍然会被捕获.按MSDN的说法,Application.Exit()方法可以不引发FormClosing和FormClosed事件.

   如果在一个NotifyIcon程序中,隐藏的窗体在使用Application.Exit()事件时,程序没有退出.原因为何呢?
   应该先调用Form.Dispose(),然后调用application.Exit(),程序才可以顺利关闭,看来对于隐藏的窗体,需先释放资源,才可关闭程序.
原文地址:https://www.cnblogs.com/lgxll/p/2558495.html