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

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

32.jpg

源码:


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.执行

相关文章
|
小程序
UniApp video 使用(自定义进度条,及微信无法暂停播放设置进度问题)
UniApp video 使用(自定义进度条,及微信无法暂停播放设置进度问题)
1477 0
|
Android开发 数据格式 XML
Android NumberProgressBar:动态移动显示百分比进度的进度条
 Android NumberProgressBar:动态移动显示百分比进度的进度条 NumberProgressBar是github上一个开源项目,其项目主页是:https://github.com/daimajia/NumberProgressBar NumberProgressBar特点是当进度条在前进时候,显示出来的百分比进度数字随进度条实时显示出来,如图: 这种特点在实现一些比如下载、加载功能模块时候比较有用。
1907 0
|
5月前
|
C# C++
C# 自定义时间进度条
本文作者通过参考leslie_xin的一篇文章,成功创建了一个自定义的WinForms控件——时间进度条,该控件带有时间刻度和多种可定制的属性,如颜色、时间间隔等。作者在控件中加入了开始和结束时间,以及自适应的时间刻度间隔。控件能根据设置显示时间标签,并提供了事件处理,如值改变时的触发。代码中包含了计算时间刻度、绘制刻度线和时间标签的逻辑。作者强调了避免循环调用事件、使用OnXXX()形式的事件处理函数以及注意自定义控件中的属性和事件设计。
126 7
|
2月前
emlogpro插件-优雅的时间进度侧边栏小工具插件
emlogpro插件-优雅的时间进度侧边栏小工具插件
43 13
|
Android开发
Android 中ProgressDialog进度条对话框的使用(使用子线程模拟更新进度)
Android 中ProgressDialog进度条对话框的使用(使用子线程模拟更新进度)
182 0
|
域名解析 存储 网络协议
每月进度总结 7月1日~7月22日(上)
每月进度总结 7月1日~7月22日(上)
75 0
|
网络协议 Java 网络架构
每月进度总结 7月1日~7月22日(下)
每月进度总结 7月1日~7月22日(下)
81 0
倒计时功能制作
今天制作一个商城项目距离抢购还剩多长时间的一个小功能 首先要知道这个倒计时是不断的变化的,所以需要用到定时器来自动变化(setInterval),有三个标签存放时分秒,再利用innerHTML将计算出来的时间放入三个标签内,第一次执行也是间隔毫秒数,因此刷新页面会有空白,我们最好采取封装函数的方式,这样可以先调用一次这个函数,防止刚开始刷新页面有空白问题。
C#编程-13:ProgressBar制作时间进度倒计时
C#编程-13:ProgressBar制作时间进度倒计时
244 0
C#编程-13:ProgressBar制作时间进度倒计时
|
Android开发
Android发送验证码倒计时,时间倒计时
Android发送验证码倒计时,时间倒计时
138 0
Android发送验证码倒计时,时间倒计时