Wird eine Form geschlossen wird bekanntlich das Form_Closing Ereignis ausgelöst, so dass man entsprechend noch reagieren kann. Über die Eigenschaft e.ReasonCode lässt sich hier auch abfragen, warum die Form geschlossen werden soll. Im Gegensatz zu früher (VB5, VB6) bekommt man hier aber nicht mitgeteilt, dass die Form geschlossen werden soll, weil der Anwender auf das Schließensymbol geklickt bzw. den Schließen-Befehl aus dem Form-Systemmenü ausgewählt hat. Nachfolgender Code zeigt daher eine Lösung, wie man gezielt auf das Schließensymbol reagieren kann: Public Class Form1 Private Const WM_SYSCOMMAND As Integer = &H112 Private Const SC_CLOSE As Integer = &HF060 Protected Overrides Sub WndProc(ByRef m As Message) If m.Msg = WM_SYSCOMMAND And m.WParam.ToInt32 = SC_CLOSE Then ' Form wird per Systemmenü bzw. Klick auf X geschlossen MsgBox("Form wird per X geschlossen!") ' ... End If MyBase.WndProc(m) End Sub ... Soll bspw. verhindert werden, dass der Anwender ein Fenster über das Schließensymbol beenden kann, einfach ein "Exit Sub" einfügen: Protected Overrides Sub WndProc(ByRef m As Message) If m.Msg = WM_SYSCOMMAND And m.WParam.ToInt32 = SC_CLOSE Then ' Form wird per Systemmenü bzw. Klick auf X geschlossen Exit Sub End If MyBase.WndProc(m) End Sub Dieser Tipp wurde bereits 14.618 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |