【问题标题】:Assign ProgressBar to WebBrowser Page Loading将 ProgressBar 分配给 WebBrowser 页面加载
【发布时间】:2013-10-31 01:58:56
【问题描述】:

我正在使用 WebBrowser 控件浏览到不同的页面(通过单击表单本身上的按钮,将 WebBrowser 控件导航到不同的页面)。当它加载页面时,我想要一个 ProgressBar 动画。它是否真的表明进度并不是什么大问题 - 我可以在加载时使用 Marquee 样式对其进行动画处理。

问题是:如何让 ProgressBar 在页面加载时以这种方式动画,并在页面加载完成时停止?

【问题讨论】:

    标签: c# winforms progress-bar webbrowser-control


    【解决方案1】:

    看看WebBrowser.ProgressChanged 事件。 MSDN 页面说它非常“类似于 Internet Explorer 中的”。

    代码 sn-p 从那里直接:

    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...转换错误,我我猜)。有关示例,请参见此处:stackoverflow.com/questions/3386135/…
    • @rar 我觉得不太对,需要将progressBar.Maxiumum设置为e.MaximumProgress,否则进度条的当前值没有参考。
    • 这样做也会给我一个错误,指出它需要转换为 int。既然我有最大的集合,我会试试这个......编辑:不,仍然得到 -1 作为我的e.CurrentProgress
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2011-02-16
    • 2011-05-12
    • 2017-02-02
    相关资源
    最近更新 更多