Form verstecken und später fortsetzen

  • VB6

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

    Form verstecken und später fortsetzen

    Hallo,
    ich habe eine Form und ich möchte diese Form verstecken und später wieder anzeigen das Problem dabei ist das, dass Programm an der Stelle fortgesetzt wird an der ich es versteckt habe und nicht alles was unter Sub Form_Activate() steht wieder ausgeführt wird.
    Mir ist schon klar das ich auch einfach ein If um alles davor setzen könnte aber das ist bei sehr vielen Formen doch sehr aufwendig.
    Kann man nicht die Form einfach nur ausblenden und wieder einblenden ohne das alles unter Sub Form_Activate() wieder ausgeführt wird?
    Gruß Ed
    Hallo The-Ed,
    Hide ist schon der richtige Weg eine Form zu verstecken.
    Warum verlagerst du den Code von Activate nicht ins
    Form-Load-Event? Alternative wäre ein Flag:

    Visual Basic-Quellcode

    1. Private Sub Form_Activate()
    2. Static flgEinmal As Boolean
    3. If flgEinmal = True Then Exit Sub
    4. flgEinmal = True
    5. ' Dein Code
    6. ' ...
    7. End Sub
    Gruss,

    Neptun

    Neptun schrieb:

    Hallo The-Ed,
    Hide ist schon der richtige Weg eine Form zu verstecken.
    Warum verlagerst du den Code von Activate nicht ins
    Form-Load-Event? Alternative wäre ein Flag:
    Ich benutze nicht das Form-Load-Event da ich den Code der unter Activate steht beliebig oft über meine Hauptmenüform gestartet werden können soll. Oder ist es möglich das Load-Event ein zweites mal auszulösen?

    Ich hab ja oben schon geschrieben das ich dort ein If rumsetzen könnte nur ist das bei vielen Formen die an verschiedenen Stellen fortgesetzt werden sollen sehr umständlich.

    Gruß Ed
    Hallo The-Ed,

    Ich benutze nicht das Form-Load-Event da ich den Code der unter Activate steht beliebig oft über meine Hauptmenüform gestartet werden können soll.

    Versteh' ich nicht ganz. Die ursprüngliche Frage war ja, wie kann ich den Mehrfachaufruf verhindern:
    ...und nicht alles was unter Sub Form_Activate() steht wieder ausgeführt wird..


    Oder ist es möglich das Load-Event ein zweites mal auszulösen?

    Das Load-Event wird immer beim Laden der Form aufgeruifen (Load FormX). Den im Event enthaltenen Code
    kannst du auch mit

    Visual Basic-Quellcode

    1. Call Form_Load
    aufrufen.


    Ich hab ja oben schon geschrieben das ich dort ein If rumsetzen könnte nur ist das bei vielen Formen die an verschiedenen Stellen fortgesetzt werden sollen sehr umständlich.

    Ja, schon klar aber der gepostete Code kommt immer an die gleiche Stelle ins Activate-Event.
    Gruss,

    Neptun
    Hab jetzt grade keine Zeit es auszuprobieren aber falls das mit dem Call Form_Load funktioniert wäre das Problem gelöst.

    Vom Hauptmenü aus soll der ganze Code ausgeführt werden aber nicht wenn ich zwischendurch eine anderer Form ausführe und dann zurück wechsle dann sollte der Code nur fortgesetzt werden.

    Danke für die Hilfe.

    Gruß Ed