RotesKreuz - Public Sub

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    RotesKreuz - Public Sub

    Also mein Problem ist, ich weis nicht wie ich ein Public Sub erstelle, der dafür zuständig ist, wenn die Application über das Rotekreuz oben rechts geschlossen wird.

    Kann mir da einer helfen, bzw. mir erklären wie dieser Sub erstellt wurde?

    Danke
    Du meinst einen Event-Handler?
    Public und Private sind nur Zugriffsmodifizierer. Die haben mit Events wenig am Hut.
    Das X oben rechts schließt nur das Formular. Die Applikation wird geschlossen, sofern nicht anders eingestellt, wenn alle Formulare geschlossen wurden.

    Das Event, das aufgerufen wird, wenn ein Fenster geschlossen wird, heißt "FormClosing."
    Präzisierung:
    FormClosing kannst Du abbrechen lassen (e.Cancel auf True setzen), dann wird nicht beendet.
    FormClosed - da kannst Du nur noch fix was speichern und Tschüss.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ist nach Deinem Post wieder offen.
    Dies hier funktioniert:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
    2. MessageBox.Show("FormClosed")
    3. End Sub
    4. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    5. MessageBox.Show("FormClosing")
    6. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Edit: Nein, das "sender" kannst du nicht weglassen. Eventhandler müssen einen bestimmten Rückgabetyp und eine bestimmte Anzahl von Parametern mit bestimmtem Typ haben. Benutzen musst du den Parameter natürlich nicht. Der sagt dir nur, welches Objekt das Event gefeuert hat, was unter Umständen auch nützlich sein kann.

    Ist auch logisch, dass dein Code nicht funktioniert, Pekkey.
    Woher soll das Programm denn wissen, dass es beim Schließen die Sub aufrufen soll?
    Würde es einfach nach Signatur gehen, gäbe es sicher einiges an unerwartetem Verhalten in deinem Programm.
    Wenn du ein Event handlen willst, immer entweder mit AddHandler manuell den Handler hinzufügen oder einfach Handles Eventname ans Ende der Methodendeklaration schreiben.