我有一个简单的基于表单的.NET应用程序。在此我捕获FormClosing事件以防止关闭应用程序,而是我最小化它。应用程序应始终打开。这是我使用的代码:
private void Browser_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
}
现在的问题是,这可以防止计算机为具有非管理员权限的用户提供支持。我可以做的任何事情,以便计算机能够关闭,用户无法关闭应用程序吗?
答案 0 :(得分:7)
更改它以便它不会总是取消,而是首先查看e.CloseReason
以查看为什么要调用该事件。
有关有效值的CloseReason枚举,请参阅MSDN页面。它包含一个名为WindowsShutDown
的内容,您可能也想查看TaskManagerClosing
(如果有人试图通过任务管理器关闭应用程序,他们可能真的希望它关闭而不是最小化)。
答案 1 :(得分:4)
我找到了另一个问题的解决方案。您可以禁用表单的关闭按钮,以便可以以默认方式处理FormClosing事件
禁用关闭按钮的代码:
protected override CreateParams CreateParams
{
get
{
CreateParams param = base.CreateParams;
param.ClassStyle = param.ClassStyle | 0x200;
return param;
}
}