- using
System; - using
System.Collections.Generic; - using
System.ComponentModel; - using
System.Data; - using
System.Drawing; - using
System.Text; - using
System.Windows.Forms; - using
System.Net; - using
System.IO;
- namespace
wiindowsFormsApplication - {
-
public partial class Form1 : Form -
{ -
public Form1() -
{ -
InitializeComponent(); -
this.textBox1.Text = @"http://dl-sh-ocn-1.pchome.net/0d/bx/koomail50b8.rar"; -
}
-
WebClient webClient = new WebClient(); -
private void btn_down_Click(object sender, EventArgs e) -
{ -
-
if (webClient.IsBusy)//是否存在正在进行中的Web请求 -
{ -
webClient.CancelAsync(); -
} -
//为webClient添加事件 -
webClient.DownloadProgressChanged +=new DownloadProgressChangedE ventHandler(webClient_DownloadProgressChanged); -
webClient.DownloadFileCompleted+=new AsyncCompletedEventHandl er(webClient_DownloadFileCompleted); -
//开始下载 -
webClient.DownloadFileAsync(new Uri(this.textBox1.Text), "aa.rar"); -
} -
-
private void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedE ventArgs e) -
{ -
this.progressBar1.Value = e.ProgressPercentage; -
this.lbl_pro.Text = e.ProgressPercentage.ToString() + "%"; -
this.lbl_detail.Text = string.Format("正在下载文件,完成进度{0}/{1}(字节)" -
,e.BytesReceived -
,e.TotalBytesToReceive); -
}
-
private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) -
{ -
if (e.Cancelled) -
MessageBox.Show("下载被取消!"); -
else -
MessageBox.Show("下载完成!"); -
}
-
private void btn_cancel_Click(object sender, EventArgs e) -
{ -
this.webClient.CancelAsync(); -
this.webClient.Dispose(); -
} -
} - }
运行界面: