Web浏览器中的进度条 [英] progressbar in web browser
问题描述
嗨我想在网页浏览器中显示一个进度条,显示加载页面
i试过这个但没有发生任何事情
你可以帮忙吗?
hi i wanted to put a progress bar in web-browser that show loading page
i tried this but nothing happened
can you please help?
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
progressBar1.Value = (int)(((double)e.CurrentProgress / e.MaximumProgress)*100);}
推荐答案
你试过ajax控件吗? :P
这里有一些信息...
http:/ /www.singingeels.com/Articles/RealTime_Progress_Bar_With_ASPNET_AJAX.aspx [ ^ ]
have u tried ajax controls? :P
here is some info...
http://www.singingeels.com/Articles/RealTime_Progress_Bar_With_ASPNET_AJAX.aspx[^]
if(e.MaximumProgress!=0)
progressBar1.Value = (int)(((double)e.CurrentProgress * 100 )/ e.MaximumProgress);
使用此选项,因为当web浏览器控件添加到winform时,其progress_change事件最初在表单加载时执行一次,但是你的e.MaximumProgress初始化的负值非常小,这使得progressBar1.Value为负数但其属性中的最小值设置为我估计0或者什么,最终给出错误信息。
尝试尝试使用try catch块来查看错误消息,并在web浏览器控制的progress_changed事件中使用消息框来查看e.maximumProgress的值。 br />
我正在使用和正常工作的代码是 -
Use this as when web browser control is added to winform, its progress_change event initially executes once when form loads but your e.MaximumProgress has a very small negative value initialised which makes progressBar1.Value as negative but its minimum value in property is set to I guess 0 or something, eventually giving an error message.
Try experimenting with try catch block to see the message of error and use message box in progress_changed event of web browser control to see values of e.maximumProgress..
Code which I am using and working properly is-
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
try
{
if (checkBox1.Checked == false && webBrowser1.Document != null)
{
foreach (HtmlElement imgElemt in webBrowser1.Document.Images)
{
imgElemt.SetAttribute("src", "");
}
}
if(e.MaximumProgress!=0)
progressBar1.Value = (int)(((double)e.CurrentProgress * 100 )/ e.MaximumProgress);
if (progressBar1.Value < 0)
progressBar1.Value = 0;
else if (progressBar1.Value > 100)
progressBar1.Value = 100;
}
catch (Exception ex)
{
textBox8.Text = ex.Message;
}
}
不要打扰imgElemt的事情,首先如果阻止..其他东西只是阻止图像到加载以便更快地访问Web ..
Don't bother about imgElemt thing and first if block..thats other thing just to block images to load for faster web access..
这篇关于Web浏览器中的进度条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!