0
我使用WebBrowser控件瀏覽到不同的頁面(通過單擊窗體本身上的按鈕,將WebBrowser控件導航到不同的頁面)。當它加載頁面時,我想要一個ProgressBar動畫。無論它是否實際指示進度並不是什麼大問題 - 我可以在加載時使用「選取框」樣式進行設置。將ProgressBar分配給WebBrowser頁面加載
現在的問題是:如何在頁面加載時以此方式製作ProgressBar動畫,並在頁面加載完成時停止?
我使用WebBrowser控件瀏覽到不同的頁面(通過單擊窗體本身上的按鈕,將WebBrowser控件導航到不同的頁面)。當它加載頁面時,我想要一個ProgressBar動畫。無論它是否實際指示進度並不是什麼大問題 - 我可以在加載時使用「選取框」樣式進行設置。將ProgressBar分配給WebBrowser頁面加載
現在的問題是:如何在頁面加載時以此方式製作ProgressBar動畫,並在頁面加載完成時停止?
查看WebBrowser.ProgressChanged事件。 MSDN頁面說它非常「類似於Internet Explorer中的」。
代碼從那裏直片段:
private void WebBrowser1_ProgressChanged(Object sender, WebBrowserProgressChangedEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CurrentProgress", e.CurrentProgress);
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "MaximumProgress", e.MaximumProgress);
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "ProgressChanged Event");
}
e.CurrentProgress
將表明多少字節已經下載到目前爲止,e.MaximumProgress
將表明有多少字節下載。從這個得到一個百分比很容易,所以...你去!
我不會告訴你如何創建一個進度條(這裏有一些實現的實現),但是這會讓你繼續。
這是回答您的問題嗎?
有點。我查看了幾個進度條實現,並且大多數人都說將e.CurrentProgress分配給progressBar.Value。然而,由於它很長,我必須把它作爲一個int(我沒有看到這些例子),然後我得到一個錯誤(因爲進度變成了-1 ...鑄造錯誤,我猜猜)。看到這裏的例子:http://stackoverflow.com/questions/3386135/progress-bar-for-a-web-browser-control-in-windows-application-project-using-c-sh – muttley91
@rar我不不要以爲這是正確的,你需要將'progressBar.Maxiumum'設置爲'e.MaximumProgress',否則進度條的當前值沒有參考。 – tnw
這樣做也給了我一個錯誤,說明它需要被轉換爲int。我現在試試這個,我已經設置了最大值...編輯:不,仍然得到-1,因爲我的'e.CurrentProgress' – muttley91