我正在使用C#上的进度条和Web浏览器控件,但我不知道在导航时创建一个平滑的进度条,你是否已经逐步创建它,我会很感激。
答案 0 :(得分:10)
使用WebBrowser.ProgressChanged
事件:
private void WebBrowser1_ProgressChanged(Object sender,
WebBrowserProgressChangedEventArgs e)
{
progressBar.Maximum = (int) e.MaximumProgress;
progressBar.Value = (int) e.CurrentProgress;
}
答案 1 :(得分:3)
进度条仅在您行动之前知道您要做多少时才有用。对于加载网页,这意味着要知道将要加载的每个资源的大小。这不可行。还有其他部分无法真正预测:
所有主流浏览器早已放弃尝试显示进度来加载页面;现在他们只是显示加载活动。
WebBrowser控件有一个ProgressChanged
event,但我不知道它有多可靠。但这可能是你最好的尝试。但是,上述所有要点仍然适用。您和浏览器都不足以使进度条准确,因此它或者是一个粗略的近似值(在加载HTML后开始并仅表示加载的额外资源),或者当总资源的估计值错误时它会晃动甚至倒退
答案 2 :(得分:3)
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
progressBar1.Maximum = 100;
progressBar1.Minimum = 0;
if ((e.CurrentProgress > 0) && (e.CurrentProgress < 100))
{
progressBar1.Value = (int)e.CurrentProgress;
}
}