Label mit Zeitangabe hochzählen lassen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von MarcoIT.

    Label mit Zeitangabe hochzählen lassen

    Hey Zusammen,

    ich habe ein Label in dem nach klick auf einen Button die Startzeit befindet

    VB.NET-Quellcode

    1. Private Sub bt_start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_start.Click
    2. StartZeit = DateTime.Now
    3. lb_start.Text = StartZeit
    4. bt_stop.Enabled = True
    5. End Sub


    Wie kann ich die Startzeit denn hochzählen lassen im Sekundentakt und mir auch noch anzeigen lassen?

    Grüßle Marco
    Schau dir doch mal die Klassen Timepan, Timer genauer an. Wenn du im Timer Tick Event mit Timespan die Verstrichene zeit berechnest und diese dann in deinem label darstellst sollte das dein problem lösen.
    Pseudo-Code:

    VB.NET-Quellcode

    1. VerstricheneZeit = TimespanNow.Substract(TimespanStart)
    2. Label.Text = Verstrichene Zeit.TotalHours
    Geht doch:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents tm As New Timer
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. tm.Start(1000)
    5. End Sub
    6. Private Sub tm_Tick(sender As Object, e As System.EventArgs) Handles tm.Tick
    7. Me.label1.text = Now.ToString
    8. End Sub
    9. End Class




    Spoiler:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Runtime.CompilerServices
    2. Module TimerExt
    3. <Extension()> Public Sub Start(ByVal tm As Windows.Forms.Timer, ByVal interval As Integer)
    4. If tm IsNot Nothing Then
    5. tm.Interval = interval
    6. If Not tm.Enabled Then tm.Start()
    7. End If
    8. End Sub
    9. End Module

    picoflop schrieb:


    tm.Start(1000)


    Allein das kann schon nicht sein Pico, da bei Start keine Argumente eingetragen werden dürfen. Spoiler angeschaut
    Ich glaube es liegt aber auch daran, dass ich DateTime.Now verwende und dies nicht hochgezählt werden kann. DateTime.Now entfernt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MarcoIT“ ()

    Ne geht nicht.
    Die Zeit wird einfach nicht hochgezählt. Es kommt keine Fehlermeldung die Zeit wird angezeigt aber diese tickt nicht hoch.
    Das Ereignis tm.tick gibt es nicht und trotz des Inhaltes in dem Spoiler wird der Parameter in Start nicht akzeptiert.

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. Label1.Text = Now.ToString
    3. End Sub

    VB.NET-Quellcode

    1. Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick
    2. If Timer1.Enabled Then
    3. Timer1.Stop()
    4. Else
    5. Timer1.Start()
    6. Label1.Text = Now.ToString
    7. End If
    8. End Sub


    just...