Form Closing Event in VB.NET – Programm schließen
Zum Kennenlernen von Windows Forms nutzt man am Besten VB.NET. Ein Anwendungsfall ist auch das Schließen der Windows-Form. Möchte man hier eine Abfrage, einen Hinweiß oder sonstige Aktionen ausführen lassen, müssen diese im Form Closing Event abgebildet werden. Wir zeigen euch wie man eine Abfrage erstellt, ob das Programm wirklich geschlossen werden soll oder wie man andere Aktionen beim Schließen der Windows Form ausführen lassen kann.
Das Form Closing Event in VB.NET – wenn das Programm geschlossen wird
Das Windows Form Closing Event wird beim beenden der Software ausgeführt, also wenn das Programm geschlossen wird. Noch spezieller kann man sagen, wenn man auf das rote X rechts oben klickt. Hier wird eine Sub-Routine abgearbeitet, welche das MyBase.Closing handelt. Am Besten starten wir mit der Sub, in der das Beenden der Software abgefangen wird:
Private Sub FormClosing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing End Sub
Verwendet man dieses Code-Schnipsel, so passiert in erster Linie nichts, wenn man die Software schließt. Aber nun könnte man eine Aktion ausführen. Als Beispiel lasse ich Text in eine Datei schreiben, und danach eine MessageBox ausgeben.
Private Sub Form1Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing '--------------------------- write file System.IO.File.WriteAllText("lastset_year", "") '--------------------------- show message box MsgBox("Die Software wird nun beendet.") End Sub
Nun wird beim beenden der Windows-Form in eine Datei geschrieben und danach eine Nachricht angezeigt, dass das Programm nun geschlossen wird. Es gibt hier unzählige Möglichkeiten. Eine häufig genutzte Möglichkeit ist das Fragen, ob das Programm wirklich geschlossen werden soll. Das ist mit einer Msg-Box realisierbar, welche man mit JA oder NEIN beantworten muss.
Private Sub FormClosing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing If MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then e.Cancel = False Else e.Cancel = True End If End Sub
Wird nun mit JA bestätigt, so wird die Aktion e.Cancel (des Beendens) auf FALSE gesetzt. Das bedeutet, dass die Windows Form geschlossen wird.