进度条问题 VB.Net

Progress Bar Issue VB.Net

在为我的 Web 浏览器加载进度条时遇到一个小问题,每当我输入代码时,我程序中的 Windows.Forms.WebBrowserProgressChangedEventArgs 部分就会出现问题,出于某种原因,它的行为就像是写错了,试图弄清楚这里到底出了什么问题。

Private Sub Loading(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserProgressChangedEventArgs)
    ToolStripProgressBar1.Maximum = e.MaximumProgress
    ToolStripProgressBar1.Value = e.MaximumProgress
End Sub

Private Sub Done(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
    TabControl1.SelectedTab.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
    ComboBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
End Sub

您每次都将 value 设置为 maximum,因此无法正确显示。

但是 - 您不应该使用 MaxiumProgress 来设置进度条的 Maximum 值,因为 MaximumProgressLong 并且 ProgressBar Value 是一个 Integer,因此如果您有一个大文档,它可能会溢出。

您应该做的是计算 百分比 进度并显示:

Private Sub WebBrowser1_ProgressChanged(sender As Object, e As WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
    Dim percentage As Integer
    'calculate the percentage checking for zero maximum as an error case
    If e.MaximumProgress = 0 Then
        percentage = 0
    Else
        percentage = CInt(e.CurrentProgress / e.MaximumProgress * 100)
    End If
    'make sure it is in bounds of the progress bar
    If percentage >= 0 AndAlso percentage <= ToolStripProgressBar1.Maximum Then
        'set the value
        ToolStripProgressBar1.Value = percentage
    End If
End Sub

Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
    'set the value to zero when we have finished
    ToolStripProgressBar1.Value = 0
End Sub

现在您只需将进度条的最小值设置为 0,将最大值设置为 100(这是默认值)