我在主窗体的 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;
}
}