先展示效果
这个功能包括:初始化进度条长度;进度读取中的暂停,继续;将读取进度条的日志写入textbox里并写成日志.txt。
用到的控件:lable 2个,textbox 2个,button3个,ProgressBar
private void Btn_Start_Click(object sender, EventArgs e)
{
if (txt_ProgressBar.Text == "")
{
MessageBox.Show("请输入进度条长度");
}
else
{
progressBar1.Value = 0;//当前进度
progressBar1.Minimum = 0;//最小值
progressBar1.Maximum = Convert.ToInt32(txt_ProgressBar.Text.Trim()); //最大值
timer1.Enabled = true;
}
}
//暂停
private void Btn_Pause_Click(object sender, EventArgs e)
{
if (timer1.Enabled == true)
{
timer1.Enabled = false;
MessageBox.Show("进度条已暂停!");
Btn_Pause.Text = "继续";
}
else
{
timer1.Enabled = true;
Btn_Pause.Text = "暂停";
}
}
//停止
private void Btn_Stop_Click(object sender, EventArgs e)
{
//关闭timer
timer1.Enabled = false;
MessageBox.Show("进度条已停止!");
progressBar1.Value = 0;
}
//设置进度条的前进
private void timer1_Tick(object sender, EventArgs e)
{
if (progressBar1.Value < progressBar1.Maximum)
{
progressBar1.Value++;
//显示Mag
string msg=progressBar1.Value.ToString() + "/" + progressBar1.Maximum;
//调用write写方法
write(msg);
//AppendText追加字符串方法 一次写到txtLogo
txtLogo.AppendText(DateTime.Now.ToString("HH:mm:ss") + " " + msg + "\r\n");
}
else
{
timer1.Enabled = false;
MessageBox.Show("进度已完成!");
}
}
//写入日志.txt
public void write(string msg)
{
//获取当前程序目录
string Logpath = Path.GetDirectoryName(Application.ExecutablePath);
//新建文件
System.IO.StreamWriter sw = System.IO.File.AppendText(Logpath + "/日志.txt");
//写入内容
sw.WriteLine(DateTime.Now.ToString("HH:mm:ss") + " " + msg);
//关闭数据流
sw.Close();
//释放数据流
sw.Dispose();
}
这个进度条长度是自己写的,一般我们要下载的时候用到进度条的时候,进度条长度是下载内容的总条数即可。