使用CANCEL选项C#防止窗口关闭

时间:2011-06-23 13:15:43

标签: c# windows shutdown

我正在尝试在我的Windows窗体应用程序中包含一种方式,当用户尝试关闭窗口时,它会打开一个带有取消选项的对话框....该办公室经典之一。

在其他主题中,人们描述了如何防止Windows关闭。他们使用一个对话框。它有帮助,但如果用户立即点击此框中的任何选项,则Windows会关闭该应用程序。

你可以理解我的意思,做以下测试:

在Windows Vista或7中打开Paint,Word或任何办公软件并开始写东西。不要保存它。

尝试关闭窗口,当出现经典保存对话框立即时,单击“取消”。

您将看到该应用程序继续工作,Windows正在询问您要执行的操作。

我尝试按照Microsoft Link进行操作,但如果我在消息框中单击“确定”,应用程序将关闭。

2 个答案:

答案 0 :(得分:4)

   private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason.Equals(CloseReason.WindowsShutDown))
        {
           if (MessageBox.Show("You are closing this app.\n\nAre you sure you wish to exit ?", "Warning: Not Submitted", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes)
               return;    
           else    
               e.Cancel = true;
        }
    }

答案 1 :(得分:0)

虽然建议不要使用延迟窗口关闭,但可以使用关闭脚本。您可以使用gpedit.msc配置文件配置自己的脚本文件。 我已经读过这些脚本可以将窗口关闭延迟10分钟。

我希望它有所帮助