日期:2014-05-18  浏览次数:20882 次

我在主窗体的 formclosing事件中询问用户是否退出,为什么这个询问会出现两次呢?
我在主窗体的 formclosing事件中询问用户是否退出,为什么这个询问会出现两次呢?
就是下面的代码,这个提示框会出现两次,这不是我想要用效果,我想只询问一次就行了,为什么是两次呢?
哪行代码影响的呢?

好象就该是 application.exit()这一句吧。可是这一句不能省呀,如果省了这一句,好象不能真正退出呀。(因为如果不加这一句,则退出程序后,菜单中的调试按钮还是虚的,说明程序没有真正的退出运行状态)
C# code

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult.Yes == MessageBox.Show("您确实要关闭主程序吗?", "询问", MessageBoxButtons.YesNo,MessageBoxIcon.Question))
            {
                Application.Exit();
            }
            else
            {
                e.Cancel = true;
            }
        }



------解决方案--------------------
你用Application.Exit()可能会再次调用FormClosing
------解决方案--------------------
e.Cancel = false; //强制关闭所有窗口 
替换Application.Exit();
试试

------解决方案--------------------
直接用e.Cancel = false;就可以了,因为这个事件就是在关闭窗口
------解决方案--------------------
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.ApplicationExitCall)
return;
if (DialogResult.Yes == MessageBox.Show("您确实要关闭主程序吗?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{
Application.Exit();
}
else
{
e.Cancel = true;
}
}