我有一个方法名称DownloadProgressChanged。我的程序将能够下载多个东西,因此它将有不同的进度条。 DownloadProgressChanged的问题在于,我不确定如何根据正在下载的内容使用不同的进度条。所以基本上我想知道在调用方法时是否可以将progressBar名称作为参数传递。 (如果下载其他东西,progressBar2将激活而不是progressBar1)。我的代码如下。
WebClient wc = new WebClient();
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressChanged);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
double bytesIn = double.Parse(e.BytesReceived.ToString());
double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
double percentage = bytesIn / totalBytes * 100;
progressBar1.Value = int.Parse(Math.Truncate(percentage).ToString());
}
答案 0 :(得分:0)
为什么不使用Dictionary<WebClient, ProgressBar>
?
创建WebClient
时,请将字典的WebClient
字段指定为相关的ProgressBar
。然后,您可以通过将ProgressBar
转换为DownloadProgressChanged
并在字典中进行查找,在sender
方法中检索此WebClient
。