.NET取消关闭表单会阻止它在Windows关闭时关闭

时间:2012-07-27 17:25:21

标签: windows vb.net shutdown formclosing

 Private Sub frmMain_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    e.Cancel = True
    Me.WindowState = FormWindowState.Minimized
End Sub

您好!

我正在使用上面这个简单的代码。但是,如果在关闭计算机时应用程序处于打开状态,则Windows会等待它关闭或希望我终止它以便继续运行。我找不到一种方法来了解用户是否正在尝试关闭应用程序或Windows。我所知道的是,在这两种情况下,Windows都会向窗口发送密切消息,这对我没有帮助。我可以想到其他一些方法,但应该有一种“清晰”的认识方式。

提前致谢:)

2 个答案:

答案 0 :(得分:3)

还有一个接近的原因:

Protected Overrides Sub OnFormClosing(ByVal e As FormClosingEventArgs)
  If e.CloseReason <> CloseReason.WindowsShutDown Then
    e.Cancel = True
    Me.WindowState = FormWindowState.Minimized
  End If
End Sub

答案 1 :(得分:2)

您应该能够从此list实现密切原因枚举。 这样您就可以使计算机关闭。您必须在e.CloseReason中实现WindowsShutDown和/或TaskManagerClosing枚举。