Progressbar bei Maximum wieder auf 0 setzen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Akanel.

    Progressbar bei Maximum wieder auf 0 setzen

    Hallo zusammen,

    ich beschäftige mich derzeit mit der Progressbar und dem Timer.
    Im Grunde ist es Simpel, dachte ich.
    Ich habe mir dazu ein kleines Testprojekt mit 3 Buttons, 1 Progressbar und einem Timer angelegt.
    Dazu folgenden Code:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Timer1.Start()
    4. End Sub
    5. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    6. Timer1.Stop()
    7. End Sub
    8. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    9. Timer1.Stop()
    10. ProgressBar1.Value = 0
    11. End Sub
    12. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    13. ProgressBar1.Increment(10)
    14. If ProgressBar1.Value = ProgressBar1.Maximum Then
    15. Timer1.Stop()
    16. 'ProgressBar1.Value = 0
    17. End If
    18. End Sub
    19. End Class


    Was mir nun aber aufgefallen ist:
    1. Wenn ich den Timer starte und dann mittendrin mit Button2 stoppe, läuft die Progressbar noch ein Stück weiter. Es kommt mir so vor als wenn die Animation der Progressbar "hinterher hängt".
    Ist das ein normales Verhalten?

    2. Wenn der Timer durchgelaufen ist möchte ich die Progressbar wieder auf 0 setzen. Dazu setze ich die .value der Progressbar nach dem stoppen des Timers auf 0.
    Hier läuft die Animation nur bis ca. zur hälfte und wird dann schon zurückgesetzt.
    Wie kann man das verhindern?

    Ich habe schon versucht den Intervall des Timers etwas zu erhöhen, aber führt nicht zum gewollten Ziel. Die Progressbar läuft trotzdem nicht ganz durch.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Also ist nicht der Code allein dafür verantwortlich sondern auch der Intervall des Timers.

    Habe es jetzt mal mit deinem Snippet probiert und den Intervall auch auf 1000 gesetzt. Funktionert.
    Bis zu einem Intervall von 550 kann man es noch sehen, alles darunter nicht mehr.

    Danke Dir.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.