Schrift Live Veränderung ?

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Synaptic.

    Schrift Live Veränderung ?

    Hallo liebe vbler,

    Ich hänge mal wieder an meinem Programmchen xD

    Ich habe schon nach der Lösung gegooglt aber leider hab ich mit meinen suchwörtern nix gefunde das es sich auch bisschen bescheiden ausdrücken lässt.

    Ich habe eine Form auf der ein Label platziert ist.
    Ich möchte nun das die Form startet und sich der Label.text nach vorgegebener zeit sozusagen Live vor den augen des betrachters wechselt.

    Ich habe es mit folgendem Code Probiert:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. System.Threading.Thread.Sleep(1500)
    4. Label1.Text = "Vorgang startet ..."
    5. System.Threading.Thread.Sleep(1500)
    6. Label1.Text = "Verbindung wird hergestellt ..."
    7. System.Threading.Thread.Sleep(2000)
    8. System.Threading.Thread.Sleep(1500)
    9. Label1.Text = "Downloading ..."
    10. System.Threading.Thread.Sleep(1500)
    11. Label1.Text = "Checking ..."
    12. System.Threading.Thread.Sleep(2000)
    13. System.Threading.Thread.Sleep(1500)
    14. Label1.Text = "Validating ..."
    15. System.Threading.Thread.Sleep(1500)
    16. Label1.Text = "Starting ..."
    17. System.Threading.Thread.Sleep(2000)
    18. End Sub
    19. End Class


    Doch leider ist es so das er die Form erst nach der gesammten Sleep Time anzeigt und dann auch nur "Starting ..." also setzt er den Text schon vor dem anzeigen.

    Hatt jemand nen Lösungsvorschlag ?

    MFG Synaptic
    Sagen wir du willst "Hallo" ausgeben.
    Jede sekunde soll sich ein Buchstabe hinzufügen.
    Du brauchst 5 Timer:
    Timer1
    Timer2
    Timer3
    Timer4
    Timer5

    Alle Timer.Intervall auf 1000
    Bei Timer 1 kommt rein:

    VB.NET-Quellcode

    1. Label.Text = "H"
    2. Timer2.Start()
    3. Timer1.Stop()


    usw.
    @ xXMichaelXx: Arg :cursing: sowas schlimmes hab ich ja noch nie gesehen. Das übertrifft alles. Amen. Wie gesagt... Shown-Event... ansonsten: wenn schon mit Timern, dann wenigstens mit einem und einer static/modulweiten Zählervariable und Select-Case...
    Da brauchst du doch keine 5 Timer da reicht einer. Du musst dann halt die Intervalle auf 5000 setzen, dann abfragen wenn die Intervalle auf 1000 ist soll er das machen 2000 soll er das machen und immer so weiter.

    PS: wenn ich mich irre bitte melden.
    Das Form Load Event wird ausgeführt bevor das Form wirklich geladen ist, also während es geladen wird. Nimm das Form Shown Event dann hast du das Problem nicht. Mit einem Timer kansnt dus auch lösen, betonung auf EINEN Timer, aber so ist es imo auch eleganter.
    es gäbe auch noch die Möglichkeit von Multithreading, dann könntest du den Formular Thread in Ruhe lassen.(Form lässt sich weiterhin bewegen)

    lg
    Ich hab die Sache von oben nun in das Shown event gepackt,

    Es kommt wieder die Form aber anstelle des lebels ist nur ein weißes Rechteck und erst nach der sleep time steht wieder das letzte zugewiesene "wort"

    vlt kommt man eh besser wenn man 4 forms macht und das
    eine nach einiger zeit ausblenden lässt und dass andere anzeigen
    x.x
    Hi Synaptic,

    du könntest auch dein Programm oben so lassen und vor jedem Sleep ein me.refresh machen, damit das programm überhaupt die zeit hat das label zu ändern ;) Ist zwar nicht die beste Lösung, mit nem Timer gehts besser, sollte aber klappen...

    MfG Sepp