本帖最后由 龟宝宝 于 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可以改变状态。
求正确处理方法。
已解决: 原来并不是代码写错了 而是这个自定义控件 的使用方法没有看懂。。以上代码都是正确的。谨记 看懂方法在做错误往往是粗心大意导致。
表达的不是很清楚 不理解可以提问。
|