最小化FormClose防止电脑关机
问题描述:
我有一个简单的基于Form-Based的.NET应用程序。在此我捕获FormClosing事件以防止应用程序关闭,而不是我最小化它。应用程序应始终保持开放状态。下面是我使用的代码:最小化FormClose防止电脑关机
private void Browser_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
}
现在的问题是,这防止计算机书亭下来与非管理员权限的用户。我能做的任何事情,以便计算机能够关闭,用户不能关闭应用程序?
答
改变它,以便它并不总是取消,而是先看看e.CloseReason
,看看为什么要调用该事件。
有关有效值,请参阅CloseReason枚举的MSDN页面。它包含一个名为WindowsShutDown
的应用程序,您也可能想要查看TaskManagerClosing
(如果有人试图用taskmanager关闭应用程序,他们可能真的希望它关闭而不是最小化)。
答
我发现了另一个解决方案。您可以禁用窗体的关闭按钮,这样你的FormClosing事件可以处理的默认方式
代码禁用关闭按钮:
protected override CreateParams CreateParams
{
get
{
CreateParams param = base.CreateParams;
param.ClassStyle = param.ClassStyle | 0x200;
return param;
}
}
完蛋了。非常感谢您的帮助 – Timo 2010-09-07 09:17:09