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