Hi,
Wie kann man feststellen, ob eine Form tatsächlich deswegen geschlossen wird, weil auf das das X rechts oben geklickt wurde und nicht z.B. durch Code, wie Me.Close oder so. Und wenn das dann wirklich durch den Klick passiert ist, dann will ich das schließen noch aufhalten können.
Was ich recherchiert hab:
Spoiler anzeigen
Wie kann man feststellen, ob eine Form tatsächlich deswegen geschlossen wird, weil auf das das X rechts oben geklickt wurde und nicht z.B. durch Code, wie Me.Close oder so. Und wenn das dann wirklich durch den Klick passiert ist, dann will ich das schließen noch aufhalten können.
Was ich recherchiert hab:
- Form_Closing Event: Da kann man ja mit e.CloseReason feststellen, warum es geschlossen wird. Jedoch kommt beim Schließen Knopf und beim Aufruf von Me.Close als Reason: UserClosing raus
- Überschreiben von WndProc: Da kann ich es zwar abfangen, aber ich hab keine Möglichkeit gefunden, das Schließen zu verhindern... Mein Code dazu:
VB.NET-Quellcode
- Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
- Const WM_SYSCOMMAND As Integer = &H112
- Const SC_CLOSE As Integer = &HF060 ' -> vbFormControlMenu
- If m.Msg = WM_SYSCOMMAND Then
- If m.WParam.ToInt32 = SC_CLOSE Then
- MsgBox("Durch den Schließen X Button Knopf Dings")
- End If
- End If
- MyBase.WndProc(m)
- End Sub