VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1454|回复: 11

如何让进度条与页面加载同步(C#)??

[复制链接]

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-19 07:20:01 | 显示全部楼层 |阅读模式
最近在做一个浏览器

我想做一个跟IE等浏览器左下角那样的进度条,但我现在不知道怎么能让progressbar与我的webbrowser关联起来,能达到页面加载与进度条同步的目的。

请说的详细点哈~~先谢谢各位啦~
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-1-26 20:54:01 | 显示全部楼层
建立委托:
   _axWebBrowser.ProgressChange += new
                AxSHDocVw.DWebBrowserEvents2_ProgressChangeEventHandler(
                this.mainBrowser_ProgressChange);
再处理:
     private void mainBrowser_ProgressChange(object sender, AxSHDocVw.DWebBrowserEvents2_ProgressChangeEvent e)
        {//处理进度条事件
            AxSHDocVw.AxWebBrowser axWebBrowser1 = (AxSHDocVw.AxWebBrowser)sender;
            HE_WebBrowserTag _HE_WebBrowserTag = (HE_WebBrowserTag)axWebBrowser1.Tag;

            //如果当前页面和当前webbrowser不匹配,那么放弃它
            if (_HE_WebBrowserTag._TabIndex != this.MainTabCtrl.SelectedIndex) { return; }

            processBar.Visible = true;
            if ((e.progress > 0) && (e.progressMax > 0))
            {
                processBar.Maximum = e.progressMax;
                processBar.Step = e.progress;
                processBar.PerformStep();
            }
            else if (axWebBrowser1.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
            {
                processBar.Value = 0;
                processBar.Visible = false;
            }
        }
回复

使用道具 举报

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-2-12 15:00:01 | 显示全部楼层
好滴 偶先去试试哈`
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-14 11:15:02 | 显示全部楼层
up
回复

使用道具 举报

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-2-17 17:15:01 | 显示全部楼层
能说下原理吗
回复

使用道具 举报

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-2-17 17:45:01 | 显示全部楼层
还是不太明白~
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-2-17 20:45:02 | 显示全部楼层
著等於試引用了瀏覽器的等待功能
回复

使用道具 举报

0

主题

23

帖子

20.00

积分

新手上路

Rank: 1

积分
20.00
发表于 2020-2-23 12:45:02 | 显示全部楼层
VS2005 利用webBrowser的代码:
private void Form1_Load(object sender, EventArgs e)
        {
            Uri url = new Uri("http://www.163.com");
            webBrowser1.Url = url;
            webBrowser1.ProgressChanged+=new WebBrowserProgressChangedEventHandler(webBrowser1_ProgressChanged);
        }

        private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {
            
            processBar.Visible = true;
            if ((e.CurrentProgress > 0) && (e.MaximumProgress > 0))
            {
                processBar.Maximum =Convert.ToInt32( e.MaximumProgress);
                processBar.Step = Convert.ToInt32(e.CurrentProgress);
                processBar.PerformStep();
            }
            else if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
                processBar.Value = 0;
                processBar.Visible = false;
            }
        }
回复

使用道具 举报

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-3-11 22:45:01 | 显示全部楼层
能说下他具体的实现过程吗~
还有很多细节不是很理解~~
回复

使用道具 举报

2

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-4-14 10:30:02 | 显示全部楼层
自己顶起来!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表