Oft wird gefragt: Wie kann ich verhindern, dass eine Form über dieSchließen-Schaltfläche kommentarlos beendet wird? Man könnte jetzt auf die Idee kommen, diesen Schließen-Button einfach zu deaktivieren, so wie es in diesen Tippsbeschrieben ist: Im Grunde genommen will man nur verhindern, dass der Anwender vergisst seineDaten zu speichern bevor er das Programm beendet, oder man möchte erreichen, dass eine bestimmte Form mit Informationen eine gewisse Zeit geöffnet bleibt, oder, oder, oder. Also wie verhindert man es nun? Hierzu muss man wissen, dass beim Klick aufdas Schließen-Symbol der QueryUnload-Ereignis ausgelöst wird. DiesesQueryUnload-Ereignis hat die folgenden Parameter:
Wenn das Cancel-Argument auf True gesetzt wird, kann dasbetroffene Formular nicht geschlossen werden. Über das UnloadMode-Argumentkann ermittelt werden, was das QueryUnload-Ereignis ausgelöst hat. Nachfolgendder Vollständigkeit halber eine Tabelle der möglichen Werte für das UnloadMode-Argument:
Nun könnte man ja sagen - o.k., ich setz Cancel auf True und fertig. Dassieht dann ungefähr so aus: Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = vbFormControlMenu Then Cancel = True End If End Sub Das Problem ist jetzt nur, dass man die Form überhaupt nicht mehr über dieSchließen-Fläche geschlossen bekommt. Es sollte ja nur so sein, dass eineWarnung angezeigt wird. Versuchen Sie es mal so: Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Select Case UnloadMode Case vbFormControlMenu ' oder Case 0 ' falls Schaltfläche "Nein" gewählt wurde, Form nicht schließen If vbNo = MsgBox("Haben Sie alles gesichert?" & vbCrLf _ & "Wollen Sie jetzt wirklich beenden?", _ vbQuestion + vbYesNo, "Sind Sie sicher ???") Then Cancel = True End If End Select End Sub Diese Seite wurde bereits 25.806 mal aufgerufen. |
vb@rchiv CD Vol.6 ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Buchempfehlung Tipp des Monats Heinz Prelle Datei-Mehrfachauswahl an eine ListBox übergeben Dieser Tipp zeigt, wie Sie über den Windows-CommonDialog eine Mehrfach-Dateiauswal realisieren... Neu! sevEingabe 3.0 ![]() Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
|||||||||||||||||||||||||||||||
|
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. |
||||||||||||||||||||||||||||||||




