Таймер формата h:m:s с функцией паузы - Visual Basic .NET

Формулировка задачи:

Есть ли в vb какие-то средства, чтобы выводить таймер в формате h:m:s? Нужно так: 1. Нажали кнопку1, начался отсчет времени в формате h:m:s 2. Нажали кнопку2, таймер остановился. 3. Нажали кнопку3, таймер продолжил отсчет с того места, на котором был остановлен. Или помогите дописать велосипед. На MSDN нашел про некий TimeSpan, начал городить велосипед, но залип с возобновлением таймера. Код:
 Dim tmrStart As Date  ' время запуска
        Dim tmrStoped As Date ' время окончания
        Dim tmrRazn As New TimeSpan ' разница времени
 
'Запуск таймера
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        tmrStart = Now 'Начало работы таймера
        Timer1.Start()
    End Sub
 
'Таймер, который выводит в Label1 отсчет времени через каждую сек.
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        tmrStop = Now ' Тик таймера(завершение)
        tmrRazn = tmrStop.Subtract(tmrStart) ' Вычитаем разницу во времени
        Label1.Text = tmrRazn.Hours & ":" & tmrRazn.Minutes & ":" & tmrRazn.Seconds
    End Sub
 
'Останавливаем таймер
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Timer1.Stop()
    End Sub
 
'Возобновляем работу таймера с того места, где остановились
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        
'Тут чего-то под вечер уже не думается)))  Не знаю как нормально возобновить отсчет
 
    End Sub

Код к задаче: «Таймер формата h:m:s с функцией паузы - Visual Basic .NET»

textual
Dim tmrStart As Date  ' время запуска
    Dim tmrStoped As Date ' время окончания
    Dim tmrNew As Date ' 
    Dim tmrRazn As New TimeSpan ' разница времени
 
    'Запуск таймера
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        tmrStart = Now 'Начало работы таймера
        Timer1.Start()
    End Sub
 
    'Таймер, который выводит в Label1 отсчет времени через каждую сек.
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        tmrStoped = Now ' Тик таймера(завершение)
        tmrRazn = tmrStoped.Subtract(tmrStart) ' Вычитаем разницу во времени
        Label1.Text = tmrRazn.Hours & ":" & tmrRazn.Minutes & ":" & tmrRazn.Seconds
    End Sub
 
    'Останавливаем таймер
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Timer1.Stop()
    End Sub
 
    'Возобновляем работу таймера с того места, где остановились
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        tmrNew = Now
        tmrStart = New Date(tmrNew.Ticks - tmrRazn.Ticks)
        Timer1.Start()
    End Sub

7   голосов, оценка 3.286 из 5


СОХРАНИТЬ ССЫЛКУ