Eigenschaftenfenster listet nicht alle Ereignisse einer Form auf

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Eigenschaftenfenster listet nicht alle Ereignisse einer Form auf

    Gibt es einen Grund, warum das Eigenschaftenfenster unter "Ereignisse" nicht alle möglichen Ereignisse (einer Form) auflistet? Es fehlt z. B. Closing und Closed. Es wäre möglich, dass das schon alles ist, ich wollte jetzt nicht die ganze Liste vergleichen.

    Es ist jetzt keine überlebenswichtige Frage, aber mich würde schon interessieren, was der Grund ist oder sein könnte.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    @Marcus Gräfe Closing und Closed werden per FormClosing und FormClosed bedient.
    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!
    Oh, stimmt, darauf bin ich jetzt nicht gekommen. Danke!

    EDIT: Hier noch ein Thread, der die Unterschiede zwischen Closing und FormClosing bzw. Closed und FormClosed beschreibt: vbforums.com/showthread.php?51…n-Closing-amp-FormClosing

    Closed und Closing sollte demnach nicht mehr verwendet werden. Blöd nur, dass die Ereignisse im Code-Editor noch auftauchen und dann von so Anfängern wie mir verwendet werden... ;)
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Generell ist das möglich und wird auch gemacht, dass Member im PropertyGrid verborgen werden - das geht über bestimmte Attribute, die an die Properties drangemacht werden.
    ZB. das Textbox.Paint-Event wirste nicht finden, weils auf diese Weise versteckt wurde, weil Textbox halt zum normalen Painting-Vorgang nicht imstande ist.
    Dennoch ist das Paint-Event da, weil ist ja von Control geerbt.
    Aber es funktioniert bei Textbox nicht, deshalb versteckt mans.
    Ist nicht ganz super-blitzsaubere Architektur, aber war in WinForms wohl nicht besser zu lösen.
    @Marcus Gräfe Es gibt noch eine andere Herangehensweise:

    VB.NET-Quellcode

    1. Protected Overrides Sub OnWAS_AUCH_IMMER


    bekommst Du alle Events, die supportet werden.
    Einige (mehr oder weniger viele) davon werden als Events angeboten.
    Ich nutze diese Overrides vor allem in UserControls zur internen Abarbeitung erforderlicher Aufgaben.
    Mit folgendem Code
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
    3. Console.WriteLine("Form1_FormClosed")
    4. End Sub
    5. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    6. Console.WriteLine("Form1_FormClosing")
    7. End Sub
    8. Protected Overrides Sub OnClosed(e As EventArgs)
    9. MyBase.OnClosed(e)
    10. Console.WriteLine("OnClosed")
    11. End Sub
    12. Protected Overrides Sub OnClosing(e As System.ComponentModel.CancelEventArgs)
    13. MyBase.OnClosing(e)
    14. Console.WriteLine("OnClosing")
    15. End Sub
    16. End Class
    kommt diese Ausgabe:
    OnClosing
    Form1_FormClosing
    OnClosed
    Form1_FormClosed
    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!