对,所以我有 2 个进度条,并且我为计算第二个进度条(总体进度)的进度所做的方程式理论上应该可以正常工作。它适用于第一次下载,但是当它进行第二次下载而不是继续下载时,它会立即跳到 100。
现在我不确定这是因为我的自定义进度条还是因为其他原因。
这是我的进度条代码。
If CProgressBarCurrent.Value >= 1 Then
CProgressBarTotal.Value = (100 * (currentFileNumber - 1) + CProgressBarCurrent.Value) / Me.fileUrls.Count
End If
这些是功能:
Dim currentFileNumber As Integer = 1
每次下载完成时我都会添加一个。
CProgressBarCurrent.Value
我的第一个进度条的值,它显示了它下载了多少文件。字节明智。
Me.fileUrls.Count
队列中的文件数量。
我还尝试了另一个等式:
CProgressBarTotal.Value = (currentFileNumber / Me.fileUrls.Count + CProgressBarCurrent.Value / 100 / Me.fileUrls.Count) * 100
这也部分有效,但它有同样的问题。当第一次下载完成而不是继续下载时,它只会达到 100%。
我通过计时器滴答来管理它。因此,对于每个滴答声,它都会执行该过程。
这是我的进度条最大值属性:
Property Maximum As Double
Get
Return MaxValue
End Get
Set(ByVal value As Double)
If MaxValue < 0 Then MaxValue = 0 Else If MaxValue < MinValue Then MaxValue = MinValue
MaxValue = value
End Set
End Property
这是我的价值属性:
Property Value As Double
Get
Return Percent
End Get
Set(ByVal value As Double)
If value < Minimum Then value = Minimum Else If value > Maximum Then value = Maximum
Percent = value
If Percent = 0 Then
PictureBox1.Width = CInt(value * 3.74)
Else
PictureBox1.Width = CInt(value * 3.74 / Maximum * 100)
End If
End Set
End Property
我的声明:
Protected MinValue As Double = 0.0
Protected MaxValue As Double = 100.0
Protected Percent As Double = 0.0
谢谢。