取消应用程序退出

本文关键字:退出 应用程序 取消 | 更新日期: 2023-09-27 18:31:51

当我按 Alt + F4 时,我的应用程序正在关闭。我将如何让一个消息框在退出之前首先显示以进行确认,如果响应为否,应用程序将不会继续关闭?

取消应用程序退出

除了已经在这里发布的答案之外,不要成为挂着整个系统的笨蛋:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason != CloseReason.UserClosing)
        {
           e.Cancel = false;
           return;
        }
        // other logic with Messagebox
        ...
    }

处理Form.Closing事件,该事件将CancelEventArgs作为参数。在该处理程序中,显示消息框。如果用户希望取消,请将事件 args 的属性.Cancel设置为 true ,如下所示:

private void Form1_Closing(object sender, CancelEventArgs e)
{
    var result = MessageBox.Show("Do you really want to exit?", "Are you sure?", MessageBoxButtons.YesNo);
    if (result == DialogResult.No)
    {
        e.Cancel = true;
    }
}

在 FormClosesing() 事件中添加以下代码:

private void MyForm_Closing(object sender, CancelEventArgs e)
{
    if(MessageBox.Show("Are you sure want to exit the App?", "Test", MessageBoxButtons.YesNo) == DialogResult.No)
    {
      e.Cancel = true;
    }
}