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

Windows Form Closing Event VB.NET

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.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments