.NET取消关闭窗体可以防止在Windows关机时关闭。

3
 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个回答

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

2

您应该能够从列表中实现一个关闭原因枚举。

这将允许您使计算机关机。您需要将WindowsShutDown和/或TaskManagerClosing枚举实现到e.CloseReason中。


1
谢谢!看来我从来没有注意过closereason :) - gunakkoc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接