我下面的代码中在弹出的提示窗口中点击是的话该窗口会再弹出一次.再点击一次才退出程序
好像是Application.Exit()这句代码又重新触发了事件.
如果不用这句代码的话则只能关闭本窗口,不能退出整个应用程序..
请问有什么好的解决办法???//点击关闭
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.Yes)
{
e.Cancel = false;
Application.Exit();
}
else
{
e.Cancel = true;
}
}
{
DialogResult re = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
{
DialogResult re = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
if (e.CloseReason != CloseReason.ApplicationExitCall)
{
DialogResult re = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.Yes)
{
e.Cancel = false; Application.Exit();
}
else
{
e.Cancel = true;
}
}
是个枚举判断一下,是用户关闭还是应用程序退出就行了
是UserClose,就出现你的提示逻辑,否则什么也不做
private bool isExit = false; //是否确定退出 private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (!isExit)
{
DialogResult re = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.Yes)
{
e.Cancel = false;
isExit = true;
Application.Exit();
}
else
{
e.Cancel = true;
}
}
} //这样应该可以..
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确认要关闭软件? ", "关闭 ", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{
}
else
{
e.Cancel = true;
}
}
上面就可以了