在C#Window Appliaction中仅向用户询问一次确认消息

时间:2015-08-03 09:51:11

标签: c# .net winforms

我使用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;
            }

        }

有时会问四次,甚至多达五次......

如果用户按是,则我只想要一次,然后应用程序退出。

我需要你的帮助和建议。 提前谢谢。

1 个答案:

答案 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;
            }

        }