C# 最小化窗体关闭以防止计算机关闭
我有一个简单的基于表单的.NET应用程序。在本文中,我捕获FormClosing事件以防止关闭应用程序,而不是最小化它。应用程序应始终处于打开状态。以下是我使用的代码:C# 最小化窗体关闭以防止计算机关闭,c#,.net,winforms,visual-studio-2008,.net-3.5,C#,.net,Winforms,Visual Studio 2008,.net 3.5,我有一个简单的基于表单的.NET应用程序。在本文中,我捕获FormClosing事件以防止关闭应用程序,而不是最小化它。应用程序应始终处于打开状态。以下是我使用的代码: private void Browser_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.WindowState = FormWindowState.Minimized; thi
private void Browser_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
}
现在的问题是,这会阻止具有非管理员权限的用户关闭计算机。我能做些什么,以使计算机能够关闭,用户无法关闭应用程序?更改它,使其不总是取消,而是首先查看
e.CloseReason
以了解调用事件的原因
有关有效值的枚举,请参见MSDN页面。它包括一个名为
WindowsShutDown
,您可能还想看看taskmanager关闭
(如果有人试图用taskmanager关闭应用程序,他们可能真的希望它关闭,而不仅仅是最小化)。我找到了另一个解决方案。您可以禁用表单的关闭按钮,以便可以以默认方式处理表单关闭事件
禁用关闭按钮的代码:
protected override CreateParams CreateParams
{
get
{
CreateParams param = base.CreateParams;
param.ClassStyle = param.ClassStyle | 0x200;
return param;
}
}
就这样。非常感谢你的帮助