Beste Lösung für eine simple Stoppuhr

  • VB.NET

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

    Beste Lösung für eine simple Stoppuhr

    Hallo,
    Ich möchste eine simple Stoppuhr machen.
    Man klickt auf ein Button und es beginnt die Zeit zu laufen (hh:mm:ss) in einem Label..
    Und dann will ich, dass die Stoppuhr bei irgendeinem Ereigniss gestoppt wird..
    Sollte eigentlich einfach mit nem Timer Komponenten gehen.
    Ich hab im Internet verschiedene Lösungen dafür gefunden.. Welche ist die kürzeste/beste?

    Wäre cool wenn mit einer kurz helfen könnte (auch wenn hier 1000 Fragen zu diesem Thema existieren)..
    Klar,
    wie mach ich es aber am besten mit nem Timer.
    Könntest du mir vielleicht ne kurze Lösung empfehlen?
    __
    Hab jetzt die gefunden:
    Gibts vielleicht noch ne bessere Lösung?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click
    3. Stunden.Text = "0"
    4. Minuten.Text = "0"
    5. Sekunden.Text = "0"
    6. Timer1.Enabled = True
    7. End Sub
    8. Private Sub Stopp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Stopp.Click
    9. Timer1.Enabled = False
    10. End Sub
    11. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    12. End Sub
    13. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    14. Sekunden.Text = Sekunden.Text + 1
    15. If Sekunden.Text = 59 Then
    16. Minuten.Text = Minuten.Text + 1
    17. End If
    18. If Minuten.Text = 59 Then
    19. Stunden.Text = Stunden.Text + 1
    20. End If
    21. End Sub
    22. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Oceanfire“ ()

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. Dim Sekunden As Integer
    3. Dim Minuten As Integer
    4. Dim Stunden As Integer
    5. Sekunden = Sekunden + 1
    6. If Sekunden = 59 Then
    7. Minuten = Minuten + 1
    8. End If
    9. If Minuten = 59 Then
    10. Stunden = Stunden + 1
    11. End If
    12. Label1.Text = Stunden & Minuten & Sekunden
    13. End Sub


    Ich hab jetzt so probiert aber das geht nicht ?(
    Vielleicht muss ich irgendwie das Label immer Refreshen oder so?
    Schon klar, du musst wenn die sekunden = 60 sind, sie gleich 0 setzten, dasgleiche für minuten und stunden

    VB.NET-Quellcode

    1. Sekunden += 1
    2. If Sekunden = 60 Then
    3. Sekunden = 0
    4. Minuten += 1
    5. End If
    6. If Minuten = 60 Then
    7. Minuten = 0
    8. Stunden +=1
    9. End If

    du musst den timer im load event der form starten, bzw. in deinem fall beimklicken auf den button
    (Timer.Enabled = True)
    Du meinst wenn ich es so mache:

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. Dim Sekunden As Integer
    3. Dim Minuten As Integer
    4. Dim Stunden As Integer
    5. Sekunden += 1
    6. If Sekunden = 60 Then
    7. Sekunden = 0
    8. Minuten += 1
    9. End If
    10. If Minuten = 60 Then
    11. Minuten = 0
    12. Stunden += 1
    13. End If
    14. Label5.Text = Stunden & ":" & Minuten & ":" & Sekunden
    15. End Sub


    und dann mit Timer1.Enabled = True geht es ?
    Ich habs jetzt so gemacht wie der_Kurt empfohlen hat:

    VB.NET-Quellcode

    1. Private TS As TimeSpan
    2. Private StoppUhr As New Stopwatch

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. TS = Stoppuhr.Elapsed
    3. Label5.Text = Format(TS.Minutes, "00") & ":" & Format(TS.Seconds, "00") & "." & Mid(Format(TS.Milliseconds, "000"), 1, 2)
    4. End Sub

    VB.NET-Quellcode

    1. Timer1.Interval = 20
    2. Label5.Text = "00:00.00"

    und starte das ganze mit:

    VB.NET-Quellcode

    1. StoppUhr.Start()
    2. Me.Timer1.Start()

    Danke :thumbsup: