Web浏览器中的进度条 [英] progressbar in web browser

查看:92
本文介绍了Web浏览器中的进度条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨我想在网页浏览器中显示一个进度条,显示加载页面



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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆