【问题标题】:CountDown Timer not stopping倒数计时器不停止
【发布时间】:2016-06-23 21:24:12
【问题描述】:

我已经填充了进度条,一旦达到 StartTime,进度条和标签都会告诉 % 工作。 我无法让另一个按钮说“停止”,昏暗计时器根本不允许我从当前功能之外调用它

寻找有关使其停止的任何建议。 我试过让它包含 If

ProgressBar1.Value = Maximum then Timer.Stop() End if

但计时器会一直滴答作响,不会停止。

Imports System.Threading
Imports System.Windows.Threading.DispatcherTimer
Imports System.Timers
Imports System.Math

Class MainWindow

Private Sub Rectangle_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)
    Me.DragMove()
End Sub

Private Sub button_Click(sender As Object, e As RoutedEventArgs)
    Me.Close()
End Sub

Private Sub ext_button_Click(sender As Object, e As RoutedEventArgs) Handles ext_button.Click
    Me.Close()
End Sub

Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)

    Dim dispatcherTimer = New Threading.DispatcherTimer()



End Sub

Private Sub Timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    Dim StartTime = (Convert.ToInt32(TextBoxHour1.Text) * 3600 + Convert.ToInt32(TextBoxMinute1.Text) * 60 + Convert.ToInt32(TextBoxSecond1.Text))
    LabelST.Content = "Starting Seconds: " + Convert.ToString(StartTime)
    LabelST2.Content = ProgressBar1.Value
    ProgressBar1.Value = ProgressBar1.Value + 1
    Dim percent As Int32 = Convert.ToString(ProgressBar1.Value / StartTime * 100)
    LabelPercent1.Content = Convert.ToString(Math.Floor(percent)) + "%"




    ' Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested()
End Sub

Private Sub ButtonStart_Click(sender As Object, e As RoutedEventArgs) Handles ButtonStart.Click
    Dim Timer = New Threading.DispatcherTimer()
    Dim StartTime = (Convert.ToInt32(TextBoxHour1.Text) * 3600 + Convert.ToInt32(TextBoxMinute1.Text) * 60 + Convert.ToInt32(TextBoxSecond1.Text))
    AddHandler Timer.Tick, AddressOf Timer_Tick
    Timer.Interval = New TimeSpan(0, 0, 1)
    If ButtonStart.Content = "START" Then
        ProgressBar1.Maximum = StartTime
        Timer.Start()
        LabelPercent1.Content = (StartTime / 100)
    End If
End Sub

Sub ButtonStart_Copy_Click(sender As Object, e As RoutedEventArgs) Handles ButtonStart_Copy.Click

End Sub
End Class

【问题讨论】:

    标签: wpf vb.net countdown


    【解决方案1】:

    创建一个布尔类型的全局字段IsTimerRunning,点击开始按钮时设置为true,点击停止按钮时设置为false。让计时器滴答回调方法检查该字段,如果为真则执行正常操作,否则停止计时器。

    【讨论】:

    • 我试试看,我是编码新手,你有什么例子吗?
    • @ChrisScott 问题是,我不会写 VB 代码,虽然我能看懂它们......
    【解决方案2】:

    由于 Value 是 double,您可能需要检查 >= 而不是 equals。浮点数据类型有时可能看起来相等,即使它们不相等。

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多