题
我正在尝试做到这一点,以便提示用户确认在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事件中。现在一切都起作用。
不隶属于 StackOverflow