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はウィンドウにクローズメッセージを送信しますが、これは実際には役に立ちません。私は他のいくつかの方法を考えることができますが、それでも「明確な」知る方法があるはずです。

前もって感謝します :)

4

2 に答える 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
于 2012-07-27T17:32:14.490 に答える
2

このリストから、近い理由の列挙を実装できるはずです。これにより、コンピュータがシャットダウンするようにすることができます。WindowsShutDownおよび/またはTaskManagerClosing列挙をe.CloseReasonに実装する必要があります。

于 2012-07-27T17:35:16.700 に答える