在VB.net中ProgressBar的特定百分比的事件

时间:2015-11-13 22:59:04

标签: vb.net

晚上好。

我想知道如果进度条达到特定百分比,是否可以触发事件。

例如:一旦进度条达到其值的90%,它将触发弹出的消息框。

我使用 ProgressBar 进行两次比较。我可以在 DateTimePicker 中输入一个时间,将其与本地桌面时间进行比较。我点击按钮,启用计时器,然后开始比较这些时间。最小值和最大值总是不同,因为我比较时间,所以每次进度条达到90%时如何触发事件?

您可能已经注意到,英语不是我的主要语言,因此使用我现在使用的代码会更容易理解:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = GetTimeDifference(DateTimePicker1.Value, DateTime.Now)
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim value As Integer = ProgressBar1.Maximum - GetTimeDifference(DateTimePicker1.Value, DateTime.Now)
        If value > ProgressBar1.Maximum Then
            Timer1.Stop()
            Exit Sub
        End If
        ProgressBar1.Value = value

    End Sub

    Public Function GetTimeDifference(ByVal EndTime As DateTime, ByVal StartTime As DateTime) As Integer

        Dim span As TimeSpan = EndTime.TimeOfDay - StartTime.TimeOfDay
        Dim result As Integer = CInt(span.TotalSeconds)

        Return result

    End Function

谢谢, 约迪。

1 个答案:

答案 0 :(得分:1)

我认为你不需要一个事件就像一个变量来检查你是否达到了90%:

Private overNinety As Boolean = False

在tick方法中:

ProgressBar1.Value = value

If Not overNinety AndAlso ProgressBar1.Value >= ProgressBar1.Maximum * 0.9 Then
  overNinety = True
  'Do your thing here...
End If