http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4254|回复: 5

[其他] downWebClient_DownloadProgressChanged 内操作Progressbar

[复制链接]
发表于 2014-5-20 17:09:38 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 龟宝宝 于 2014-5-21 15:07 编辑

用户控件UserControl内添加了一个自定义控件Progressbar

主窗体添加了用户控件。


点击用户控件内的按钮,消息反馈给主窗体,主窗体实现下载过程。

public void DownloadFileAsync(Uri address, string fileName); 下载方式

//下载变化事件中 操作 用户控件内的ProgressBar
this.downWebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(downWebClient_DownloadProgressChanged);




操作方法如下:

1 用户控件内使用属性接受 Max  value  值。改变progressbar状态
[C#] 纯文本查看 复制代码
  /// <summary>
        /// 下载中。。。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void downWebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
UserControl.SetProgress(max,value);
}


2 使用委托
[C#] 纯文本查看 复制代码
 private delegate void FlushClientProgress(int a, int b);
    private void FlushClientProgresstMethod(nt a, int br)
        {
            UserControl.SetControl(a, b);
        }
  /// <summary>
        /// 下载中。。。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void downWebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
    userControl11.Invoke(d, new object[] { 1, 100});
}

问题:今天找了个自定义Progressbar。替换系统默认的。现在两种方式都不能改变Progressbar的状态。 使用系统自带Progress可以改变状态。
求正确处理方法。
已解决: 原来并不是代码写错了 而是这个自定义控件 的使用方法没有看懂。。以上代码都是正确的。谨记 看懂方法在做错误往往是粗心大意导致。

DownloadFileAsync已重载。 将指定的资源下载到本地文件。这些方法不会阻止调用线程。

表达的不是很清楚 不理解可以提问。

最佳答案

查看完整内容

先排除下是不是因为这个问题http://www.sufeinet.com/thread-1273-1-1.html


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-5-20 17:09:39 | 显示全部楼层
先排除下是不是因为这个问题http://www.sufeinet.com/thread-1273-1-1.html
回复

使用道具 举报

 楼主| 发表于 2014-5-20 17:14:48 | 显示全部楼层

补充一下

这是用户控件 点击安装按钮 消息传给主窗体 进行下载操作 下载时对 用户控件内的进度条进行操作 无反应

点击 button1直接可以实现进度条的改变可以实现。
QQ截图20140520171235.png
回复

使用道具 举报

 楼主| 发表于 2014-5-20 17:26:00 | 显示全部楼层

这个帖子我看过了,应该不是对象操作的问题。
因为在主窗体中直接调用用户控件内的属性可以改变progressbar的值。
在主窗体中使用多线程 通过委托调用 用户控件的属性也可以改变Progressbar的值。
唯独在 这个下载事件无法改变。(这些方法不会阻止调用线程 。。 。不知道这句话和平时所开的一个新的线程有什么区别)
回复

使用道具 举报

发表于 2014-5-20 17:28:39 | 显示全部楼层
下载的时候会不会阻断线程啊,我以前是根据下载数据还有总大小计算得到的,没有用过你这种方法。
就是下载事件光下载,有一个事件专门用来时时计算
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-17 08:56

© 2014-2021

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