Form anzeigen mit Do Schleife in Form_Load

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von vanitas-mundi.

    Form anzeigen mit Do Schleife in Form_Load

    Moin nochma,

    ich habe eine Do-Loop Schleife, die die etwas überpüfen soll, dies kann einige Sekunden dauern und währendessen soll jedoch auch scohn die Form mit einer Labelinformation angezeigt werden. Leider wird die Form erst angezeigt wenn die Do-Loop verlassen wurde.

    Application.DoEvent() funktioniert nicht. Aus VB6 kenne ich es noch so, wenn man Schleifen in der FormLoad hatte, konnte man einfach nochmal Me.Show() oder FormName.Show() machen und dann wurde sie gleich angezeigt.
    Aber dafür gibt es doch sicherlich eine bessere Lösung oder?
    Hallo!

    Kann dir nur meine Lösung vorstellen, wenn einer eine bessere Lösung weiß, dann wäre ich auch interessiert :)

    Nimm einfach einen Timer und stelle Interval auf einen kleinen Wert 5 oder ähnlich und enabled auf true.

    Der Code deines FormLoads kommt nun ins Tick-Ereignis.

    Als ersten Befehl im Tick-Ereignis den Timer stoppen.

    Jetzt wird erst die Form angezeigt und danach der Timer abgearbeitet.
    Naja mit dem Timer ist mir auch eingefallen, aber das finde ich nicht gut, zumidnest auch nicht besser als nochmal Me.Show() zu machen.

    @.Phil: Wie erst anzeigen lassen und dann Do-Loop starten ohne ein Timer? Wenn ich die Do-Loop in eine eigene Sub Routine auslager kommt die Form trotzdem nicht.

    Edit: ah habes nun selber rausgefunden *g* hätte mir vorher mal überlegen sollen bei den Form Events zu schauen, was es da so alles gibt. Habe nun Form_Shown() Event gefunden, hiermit wird der Code ausgeführt wenn die Form angezeigt wurde.

    Dodo schrieb:


    Edit: ah habes nun selber rausgefunden *g* hätte mir vorher mal überlegen sollen bei den Form Events zu schauen, was es da so alles gibt. Habe nun Form_Shown() Event gefunden, hiermit wird der Code ausgeführt wenn die Form angezeigt wurde.


    Da ich mit dem Timer auch nie so wirklich zufrieden war finde ich deine eigen gefundene Lösung natürlich super - nur leider
    finde ich solch ein Event nicht?! Wie spreche ich es denn an? Wird zumindest nicht gelistet! Kannst du mir dies bitte kurz erklären?
    Alsoe ifnach Doppelklick in deine Form - im Designer - dann bist du ja im Codefenster standard mäßig im Form1_Load() dann hast du in der rechtsn oberen Ecke ja so eine Dropdownbox wo du alle Events für das Element auswählen kannst. In der Dropdownliste dann ziemlich weit unten, bei mir das 8 vorletzte Item in der Liste.

    Vielen Dank!

    Ich Idiot hatte natürlich nach FormShown gesucht ...


    Nachtrag:

    Schau an, hatte mich schon für absolut blöd abgestempelt, aber dies fand ich im MSDN

    Hinweis: Dieses Ereignis ist neu in .NET Framework, Version 2.0.

    Deshalb hatte ich nach 1.1 Zeiten, als ich es gebraucht hatte wohl übersehen, dass es hinzu kam,
    aber wirkich gut zu wissen *freu*