我正在尝试做到这一点,以便提示用户确认在C#中退出我的程序,但是由于某种原因,如果他们说“是”,他们想退出,确认框将再次弹出。我不知道为什么。

    if (MessageBox.Show("Are you sure you want to exit?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
    {
        e.Cancel = true;
    }
    else { Application.Exit(); }
有帮助吗?

解决方案

啊,你检查了吗 CloseReason 为了 FormClosing 事件?我认为您可能会出于两个不同的原因而获得相同的事件(尽管我不完全期望这是正常发生的);检查你的 FormClosingEventArgs 查看参数是什么。

其他提示

用这个

 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show("Are you sure you want to close?", "Infomate", MessageBoxButtons.YesNo) == DialogResult.No)
        {
            e.Cancel = true;
        }        
    }

啊,我想出了如何修复它。我删除了application.exit();从FormClosing事件发生的事件,并将其移至FormClate事件中。现在一切都起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top