// The event that will fire whenever the progress of the WebClient is changed private static void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) { if (OnProgressChanged != null) { var args = new DownloadingProgressEventArgs(); args.CurrentSpeed = string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00")); args.CurrentPercentage = e.ProgressPercentage; args.TotalDownloaded = (e.BytesReceived / 1024d).ToString("0.00"); args.TotalSize = (e.TotalBytesToReceive / 1024d).ToString("0.00"); args.Remaining = ((e.TotalBytesToReceive - e.BytesReceived) / 1024d).ToString("0.00"); OnProgressChanged(null, args); } }