C#编程-13:ProgressBar制作时间进度倒计时

C#编程-13:ProgressBar制作时间进度倒计时

源码:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace WindowsFormsProgressBar

{

   public partial class Form1 : Form

   {

       private void outLog(string str)

       {

           txtOut.AppendText(DateTime.Now.ToString() + str + "\n");

       }


       public Form1()

       {

           InitializeComponent();

       }


       private void Form1_Load(object sender, EventArgs e)

       {

           btnBegin.Enabled = false;

           btnStop.Enabled = false;

           btnFinish.Enabled = false;

       }


       private void btnSetup_Click(object sender, EventArgs e)

       {

           try

           {

               if (txtInput.Text.Trim() != "")

               {

                   progressBar1.Minimum = 0;

                   progressBar1.Maximum = Convert.ToInt32(txtInput.Text);

                   progressBar1.Step = -1;

                   progressBar1.Value = progressBar1.Maximum;

                   btnSetup.Enabled = false;

                   btnBegin.Enabled = true;

                   outLog("时间设置正确,请按开始键继续。。。");

               }

           }

           catch {

               MessageBox.Show("请输入一个正确的秒数!");

           }

       }


       private void btnBegin_Click(object sender, EventArgs e)

       {

           btnBegin.Enabled = false;

           btnStop.Enabled = true;

           btnFinish.Enabled = true;

           timer1.Start();

       }


       private void timer1_Tick(object sender, EventArgs e)

       {

           if (progressBar1.Value > progressBar1.Minimum)

           {

               progressBar1.PerformStep();

               string per = Convert.ToDouble(progressBar1.Value) / Convert.ToDouble(progressBar1.Maximum) * 100 + "%";

               if (per != "0%")

               {

                   outLog("进度条正在工作,剩余:" + per);

               }

               //else

               //{

               //    outLog("进度条已完成");

               //    btnSetup.Enabled = true;

               //}

           }

           else

           {

               outLog("进度完成!");

               timer1.Stop();

               btnBegin.Enabled = false;

               btnStop.Enabled = false;

               btnFinish.Enabled = false;

               btnSetup.Enabled = true;

           }

       }


       private void btnStop_Click(object sender, EventArgs e)

       {

           if (timer1.Enabled == true)

           {

               outLog("stop");

               btnStop.Text = "继续";

               timer1.Stop();

           }

           else {

               outLog("继续工作");

               btnStop.Text = "暂停";

               timer1.Start();

           }

       }


       private void btnFinish_Click(object sender, EventArgs e)

       {

           outLog("停止工作\n==================");

           timer1.Enabled = false;

           progressBar1.Value = 0;

           btnSetup.Enabled = true;

           btnBegin.Enabled = false;

           btnStop.Enabled = false;

           btnFinish.Enabled = false;

           btnStop.Text = "暂停";


       }

   }

}


练习笔记:

1、 Convert.ToInt32(txtInput.Text),类型强制转换,字符串型数据转为整型数据。

2、progressBar1.PerformStep(),进度条执行一次步进。   Perform v.执行

上一篇:maven修改默认不下载快照版本的配置


下一篇:Snapshots常用命令