2016-07-15 6 views
0

私のWebブラウザのプログレスバーをロードするときに少し問題があります。コードを入力するたびに、何らかの理由で自分のプログラムのWindows.Forms.WebBrowserProgressChangedEventArgsの部分に問題があります。間違って書かれているように振る舞い、正確に何が間違っているか把握しようとしました。プログレスバーの問題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

valueプロパティを設定している間違いがあります。それはもはや一般的には有用ではなく、現代のWebページは*多くのダウンロードから作られ、30は珍しいものではありません。この機能は、以前の世紀とダイヤルアップモデムにまでさかのぼります。今日あなたのブロードバンドインターネット接続と大規模なブラウザのキャッシュは狂ってちらつくだけです。 –

答えて

0

あなたはので、これは正しく表示されませんmaximumたびにvalueを設定しています。

しかしからMaximumProgressLongで、プログレスバーValueIntegerあるので、あなたが大規模な文書を持っている場合、それがオーバーフローする可能性があるため、あなたは、プログレスバーのMaximum値を設定するためにMaxiumProgressを使用しないでください。あなただけ(デフォルト値)を0にプログレスバーの最小値と100の最大値を設定することができます今すぐ

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 

:あなたは何をすべき

割合進捗状況を計算して、それを表示することです