/// <summary> /// 下載完成 /// </summary> private void DownloadFileCompleted() { IsComlate = true; } /// <summary> /// 顯示進度 /// </summary> /// <param name="val"></param> private void DownloadProgressChanged(int val) { progressBar1.Value = val; Persent.Text = val.ToString() + "%"; progressBar1.PerformStep(); } /// <summary> /// 下載文件 /// </summary> /// <param name="url"></param> /// <param name="savefile"></param> /// <param name="downloadProgressChanged"></param> /// <param name="downloadFileCompleted"></param> private void DownloadFile(string url, string saveFile, Action<int> downloadProgressChanged, Action downloadFileCompleted) { WebClient client = new WebClient(); client.Proxy = null; if (downloadProgressChanged != null) { client.DownloadProgressChanged += delegate(object sender, DownloadProgressChangedEventArgs e) { this.Invoke(downloadProgressChanged, e.ProgressPercentage); }; } if (downloadFileCompleted != null) { client.DownloadFileCompleted += delegate(object sender, AsyncCompletedEventArgs e) { this.Invoke(downloadFileCompleted); }; } client.DownloadFileAsync(new Uri(url), saveFile); } /// <summary> /// 點擊下載 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { DownloadFile("http://www.111cn.net/update.zip", @"F:update.zip", DownloadProgressChanged, null); }