Form_Load erneut ausführen ohne Form dafür neuzustarten?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Form_Load erneut ausführen ohne Form dafür neuzustarten?

    Hallo

    Ich möchte das Form_Load-Event ohne das Programm neustarten zu müssen erneut ausführen, geht das?
    Ich habe den Code aus Form_Load bislang in einen "aktualisieren"-Button nachkopiert, allerdings wird mein Projekt immer größer .. Kann man das verkürzen? :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Von dem:

    VB.NET-Quellcode

    1. Public Class Form1 'Ausgangscode
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. MessageBox.Show("Hallo Welt!")
    4. End Sub
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. MessageBox.Show("Hallo Welt!")
    7. End Sub
    8. End Class

    zu dem:

    VB.NET-Quellcode

    1. Public Class Form1 'Variante über eine Methode
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. HalloWelt()
    4. End Sub
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. HalloWelt()
    7. End Sub
    8. Private Sub HalloWelt()
    9. MessageBox.Show("Hallo Welt!")
    10. End Sub
    11. End Class

    oder auch so:

    VB.NET-Quellcode

    1. Public Class Form1 'Variante mit einer Sub, die an beide Events drangebunden ist
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load, Button1.Click
    3. MessageBox.Show("Hallo Welt!")
    4. End Sub
    5. End Class

    bzw. so:

    VB.NET-Quellcode

    1. Public Class Form1 'Variante mit einer Sub, die an beide Events drangebunden ist und einer aufzurufenden Methode
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load, Button1.Click
    3. HalloWelt()
    4. End Sub
    5. Private Sub HalloWelt()
    6. MessageBox.Show("Hallo Welt!")
    7. End Sub
    8. End Class
    Nein, keine externen Libs.

    Das ist eine Methode:

    VB.NET-Quellcode

    1. Public Sub DoSomething()
    2. 'hier steht der Code
    3. End Sub

    Sobald du eine solche aufrufst, wird der Code, den sie enthält, ausgeführt.
    Wenn du einen Code nun an zwei Stellen im Programm brauchst, dann kannst du ihn einfach in eine eigene Methode packen und diese an allen benötigen Stellen aufrufen, so vermeidest du Redundanz.

    Für detaillierten Beispielcode siehe nafets Post.
    Perfekt, danke :)

    VB.NET-Quellcode

    1. Private Sub Form_Load()
    2. MsgBox("Form_Load")
    3. End Sub
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. Form_Load()
    6. End Sub
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Einer Nicht-Eventhandler-Prozedur den Namen

    Vultrax schrieb:

    VB.NET-Quellcode

    1. Form_Load()
    zu geben ist suboptimal.
    Das System vergibt Eventhandler-Namen nach einem Schema, Namen von User-Prozeduren sollten auch nach einem Schema vergeben werden, nämlich sinnvoll und selbsterklärend.
    Der letzte Punkt steht damit im Widerspruch zum System-Schema. Gib dieser Prozedur einen Namen, der am Inhalt, nicht am Aufrufenden festgemacht wird.
    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!