【问题标题】:Minimize on FormClose prevents computer shutdown最小化 FormClose 可防止计算机关机
【发布时间】:2011-04-09 02:32:02
【问题描述】:

我有一个简单的基于表单的 .NET 应用程序。在此我捕获 FormClosing 事件以防止关闭应用程序,而是将其最小化。应用程序应始终打开。这是我使用的代码:

private void Browser_FormClosing(object sender, FormClosingEventArgs e)
    {
       e.Cancel = true;
       this.WindowState = FormWindowState.Minimized;
       this.ShowInTaskbar = true;

    }

现在的问题是,这会阻止计算机为具有非管理员权限的用户关闭。我能做些什么让计算机能够关闭并且用户无法关闭应用程序?

【问题讨论】:

    标签: c# .net winforms visual-studio-2008 .net-3.5


    【解决方案1】:

    更改它以使其不总是取消,而是先查看e.CloseReason 以了解调用事件的原因。

    有关有效值的CloseReason 枚举,请参见 MSDN 页面。它包括一个名为WindowsShutDown,您可能还想查看TaskManagerClosing(如果有人试图用任务管理器关闭应用程序,他们可能真的希望它关闭而不是最小化)。

    【讨论】:

    • 就是这样。非常感谢您的帮助
    【解决方案2】:

    我找到了解决该问题的另一种方法。您可以禁用表单的关闭按钮,以便您的 FormClosing 事件可以按默认方式处理

    禁用关闭按钮的代码:

    protected override CreateParams CreateParams
        {
            get
            {
                CreateParams param = base.CreateParams;
                param.ClassStyle = param.ClassStyle | 0x200;
                return param;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多