2016-07-15 17 views
0

mit einem kleinen Problem beim Laden der Fortschrittsbalken für meinen Web-Browser, wenn ich den Code eingeben, hat es Probleme mit dem Windows.Forms.WebBrowserProgressChangedEventArgs Teil in meinem Programm, aus irgendeinem Grund, seine so zu tun, als wäre es falsch geschrieben und versucht herauszufinden, was genau hier falsch ist.Progress Bar Ausgabe VB.Net

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 
+0

Ein offensichtlicher Fehler bei der Werteigenschaft. Es ist generell nicht mehr sinnvoll, moderne Webseiten werden aus * vielen * Downloads gemacht, 30 ist nicht ungewöhnlich. Diese Funktion stammt aus dem vorigen Jahrhundert und Dial-up-Modems. Heute wird Ihre Breitband-Internetverbindung und der große Browser-Cache es nur noch flackern lassen. –

Antwort

0

Sie sind die value zum maximum Einstellung so jedes Mal, diese nicht richtig angezeigt wird.

Aber - Sie sollten nicht die MaxiumProgress verwenden, um die Maximum Wert der Statusleiste zu setzen, weil MaximumProgress ein Long ist und die ProgressBar Value ist ein Integer, so könnte es überlaufen, wenn Sie ein großes Dokument haben.

Was Sie tun sollten, ist die Prozentsatz Fortschritt zu berechnen und anzuzeigen, dass:

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 

Jetzt können Sie nur die progressbar Minimum auf 0 und das Maximum auf 100 (die die Standardwerte)