我使用c#构建了一个Windows应用程序。
在表单结束事件上,我写了一个这样的代码来询问确认表格用户......
private void Approve_User_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Do you really want to QUIT application...?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Application.Exit();
}
else
{
e.Cancel = true;
}
}
有时会问四次,甚至多达五次......
如果用户按是,则我只想要一次,然后应用程序退出。
我需要你的帮助和建议。 提前谢谢。
答案 0 :(得分:2)
显然,您在执行几次的地方订阅此Approve_User_FormClosing
事件。如果您订阅了4.5次,它将执行4.5次。
如果您只想捕获应用程序退出事件,请查看this线程。
修改
你需要像下面这样的东西才能达到你的奇怪要求。
private bool isExiting = false;
private void Approve_User_FormClosing(object sender, FormClosingEventArgs e)
{
if (isExiting)
return;
if (MessageBox.Show("Do you really want to QUIT application...?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
isExiting = true;
Application.Exit();
}
else
{
e.Cancel = true;
}
}