Вопрос об использовании времени с секундомером
Привет
У меня есть программа, которая использует таймеры обратного отсчета, она работает, но я пытаюсь сделать что-то новое с этим таймером блендера. Он использует NumericUpDown и должен добавить 5 минут для каждого значения, 1-5 минут, а 2-10 минут и т. д. Я действительно нашел способ добавить 5 минут к BlenderCountDownFrom, но при нажатии кнопки BlenderButton для остановки она сохраняла новое значение. Я полный новичок и не знаю, что я делаю, так что код, вероятно, ужасен! Фактический код обратного отсчета я получил из примера в интернете.
Dim BlenderCountDownFrom As New TimeSpan(0, 5, 1) Dim BlenderStopwatch As New Stopwatch Private Sub BlenderButton_Click(sender As Object, e As EventArgs) Handles BlenderButton.Click If BlenderButton.Text = "Start" Then BlenderTimer.Interval = 100 BlenderButton.Text = "Stop" BlenderTimer.Start() BlenderStopwatch.Reset() BlenderStopwatch.Start() Else BlenderButton.Text = "Start" My.Computer.Audio.Stop() BlenderTimerLabel.BackColor = Color.White BlenderTimer.Stop() BlenderStopwatch.Stop() BlenderTimerLabel.Text = ("00:05:00") Me.MiscTab.Text = "Misc" End If End Sub Private Sub BlenderTimer_Tick(sender As Object, e As EventArgs) Handles BlenderTimer.Tick If BlenderStopwatch.Elapsed <= BlenderCountDownFrom Then Dim toGo As TimeSpan = BlenderCountDownFrom - BlenderStopwatch.Elapsed BlenderTimerLabel.Text = String.Format("{0:00}:{1:00}:{2:00}", toGo.Hours, toGo.Minutes, toGo.Seconds) Else BlenderTimer.Stop() My.Computer.Audio.Play(My.Resources.Alarm.Blender, AudioPlayMode.BackgroundLoop) Me.MiscTab.Text = "Alarm" BlenderStopwatch.Stop() BlenderTimerLabel.BackColor = Color.Red End If End Sub Private Sub BlenderSetButton_Click(sender As Object, e As EventArgs) Handles BlenderSetButton.Click Blender.HowManyBlender() End Sub Public Class Blender Public Shared Function HowManyBlender() 'Must be a better way than this! If JBCountdown.BlenderUpDown.Value = 1 Then JBCountdown.BlenderTimerLabel.Text = ("00:05:00") End If If JBCountdown.BlenderUpDown.Value = 2 Then JBCountdown.BlenderTimerLabel.Text = ("00:10:00") End If If JBCountdown.BlenderUpDown.Value = 3 Then JBCountdown.BlenderTimerLabel.Text = ("00:15:00") End If If JBCountdown.BlenderUpDown.Value = 4 Then JBCountdown.BlenderTimerLabel.Text = ("00:20:00") End If If JBCountdown.BlenderUpDown.Value = 5 Then JBCountdown.BlenderTimerLabel.Text = ("00:25:00") End If Return (0) End Function End Class
Что я уже пробовал:
Я добавил 5 минут к BlenderCountDownFrom, не могу точно вспомнить, как именно, но он сохранил значение, когда я нажал кнопку stop (так же, как кнопка start просто меняет метку) Мне нужно вернуться к 5 минутам, если только NumericUpDown не установит новое значение
Gerry Schmitz
Просто добавьте / вычитайте некоторое кратное интервалу таймера. Все остальное-безумие.
funkymunkey99
Я не уверен, как я мог бы это сделать? Программа использует секундомер и временной интервал, когда секундомер больше, чем временной интервал, он делает сигнал тревоги, не зная, где интервал таймера входит в него?