定时器进度条制作
namespace _定时器制作 { public partial class Form1 : Form { //日志输出方法 public void outlog(string str) { textBox2.AppendText(DateTime.Now.ToString()+str+"\n"); } public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { if ((progressBar1.Value == 0) && (textBox1.Text == "")) //(progressBar1.Value == 0) { outlog("请设定总时间"); System.Threading.Thread.Sleep(1000); timer1.Stop(); } //progressBar1.PerformStep();//设置执行进度,自动增长step else if (progressBar1.Value > progressBar1.Minimum) { progressBar1.PerformStep(); //outlog("进度条正在工作,已经完成"+(1-Convert.ToDouble(progressBar1.Value)/Convert.ToDouble(progressBar1.Maximum))); outlog("进度条正在工作,已经完成" + Convert.ToInt32((1 - Convert.ToDouble(progressBar1.Value) / Convert.ToDouble(progressBar1.Maximum)) * 100).ToString() + "%"); //(最大值-当前值)/最大值=进度百分比(完成进度)即:(1-当前值/最大值)=进度百分比 } else { timer1.Stop(); outlog("已经完成倒计时"); button2.Enabled = false; button3.Enabled = false; } } private void Form1_Load(object sender, EventArgs e) { // if ((progressBar1.Value == 0) && (textBox1.Text == "")) //(progressBar1.Value == 0) //{ // outlog("请设定总时间"); // System.Threading.Thread.Sleep(1000); // System.Threading.Thread.Sleep(1000); //} //开始,停止,暂停三个button在启动时是灰色,不可见,设定时间button可见 button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; //progressBar1.Value = 50;//设置显示进度 //设置maximum和minimum,设置step //progressBar1.Increment(20);//progress对象.increment(进度值) } private void button4_Click(object sender, EventArgs e) { //设定时间click时间时,进度条初始化,开始button不可见 try { if (textBox1.Text.Trim() != "") { progressBar1.Minimum = 0; //progressBar1.Maximum = 100; progressBar1.Maximum = Convert.ToInt32(textBox1.Text); progressBar1.Step = -1; progressBar1.Value = progressBar1.Maximum;//定时器倒计时,所以开始时进度是满的 button1.Enabled =true;//点击设定时间之后,设定时间button不可见,开始button可见 button4.Enabled = false; //textBox2.AppendText(DateTime.Now.ToString()+"时间正确设置,请按开始键继续\n"); outlog("时间设置正确,请按开始键继续。。。。。。"); } } catch { MessageBox.Show("请输入正确的秒数(必须是整数)"); } } private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; button2.Enabled = true; button3.Enabled = true; timer1.Start(); } private void button2_Click(object sender, EventArgs e) { if (timer1.Enabled == true) { outlog("进度已经被暂停"); button2.Text = "继续"; timer1.Stop(); } else { outlog("进度条继续工作"); button2.Text = "暂停"; timer1.Start(); } } private void button3_Click(object sender, EventArgs e) { outlog("进度条停止工作\n====================================="); timer1.Stop(); timer1.Enabled = false; progressBar1.Value = 0; button4.Enabled = true; button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; button2.Text = "暂停"; } } }







浙公网安备 33010602011771号