在c#窗口应用程序中只向用户询问确认消息一次

本文关键字:消息 确认 一次 应用程序 窗口 用户 | 更新日期: 2023-09-27 18:06:07

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

有时它要求四次,甚至高达五次....

我只希望这一次,如果用户按下是,那么应用程序应该退出。

我需要你的帮助和建议。

在c#窗口应用程序中只向用户询问确认消息一次

显然您在执行几次的地方订阅了这个Approve_User_FormClosing事件。如果你订阅4,5次,它将执行4,5次。

如果你只想捕获应用程序退出事件,看看这个线程。

编辑

你需要像下面这样的东西来实现你奇怪的需求。

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