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 使用(自定义进度条,及微信无法暂停播放设置进度问题)
1677 0
|
8月前
|
C# C++
C# 自定义时间进度条
本文作者通过参考leslie_xin的一篇文章,成功创建了一个自定义的WinForms控件——时间进度条,该控件带有时间刻度和多种可定制的属性,如颜色、时间间隔等。作者在控件中加入了开始和结束时间,以及自适应的时间刻度间隔。控件能根据设置显示时间标签,并提供了事件处理,如值改变时的触发。代码中包含了计算时间刻度、绘制刻度线和时间标签的逻辑。作者强调了避免循环调用事件、使用OnXXX()形式的事件处理函数以及注意自定义控件中的属性和事件设计。
170 7
倒计时功能制作
今天制作一个商城项目距离抢购还剩多长时间的一个小功能 首先要知道这个倒计时是不断的变化的,所以需要用到定时器来自动变化(setInterval),有三个标签存放时分秒,再利用innerHTML将计算出来的时间放入三个标签内,第一次执行也是间隔毫秒数,因此刷新页面会有空白,我们最好采取封装函数的方式,这样可以先调用一次这个函数,防止刚开始刷新页面有空白问题。
|
JavaScript
[js倒计时]指定对应时间自动倒计时
[js倒计时]指定对应时间自动倒计时
198 0
C#编程-13:ProgressBar制作时间进度倒计时
C#编程-13:ProgressBar制作时间进度倒计时
261 0
C#编程-13:ProgressBar制作时间进度倒计时
|
JavaScript 前端开发
倒计时跳转和获取实时时间
本文内容如题,自己做的一个demo,倒计时和获取实时时间在许多场景都用的到,所以还算蛮实用的,需要的朋友可以做个参考。 代码解析:html代码 <body onload="startTime()"> <div class="box"> <div class="time">请等待<span id="dd">6</span>秒</div> <!--设置时间长一点,不然一直跳转很烦--> ![](aaa.png) <div class="id-box"> <div id="time"></div>
308 0
倒计时跳转和获取实时时间
UGUI系列-文字实现进度等待、进度加载、进程等待演示动画
今天分享一下UGUI 文字实现进度等待、进度加载、进程等待演示动画,实现思路比较简单,效果也比较简单,仅供大家参考,谢谢
实现计时器和倒计时工具(Unity3D)
今天分享一下如何基于Unity3D做计时器工具,为了方便演示,使用了UGUI的Text,代码简单具有拓展性,然后有什么错误或者意见也欢迎大家给我提出来。微信二维码已经显示在博客主页,有想要沟通学习的,项目外包的都可以加一下。 分享一下我另一篇关于时间计时的文章: 【Unity3D】获取到游戏时间,并显示出来
|
编解码 Android开发 索引
【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )
【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )
662 0
用MediaPlayer做个带进度条可后台的音乐播放器
传送到github看源码下载apk试用 密码:rukn 前言 想在天朝听音乐还是有些难度的, 一般来说, 两三个app还是要的. 那何不尝试自己做个手机播放器, 听个爽呢?!今天就带大家先做个简单的带进度条可拖动的音乐播放器.
1924 0