C# 使用Timer和ProgressBar控件制作一个倒计时器

C# 使用Timer和ProgressBar控件制作一个倒计时器

前言

博主前几天发现一个好玩的控件,Timer时间控件和ProgressBar进度条控件,于是就打算做一个倒计时的计时器,C#窗体应用是一个比较好玩的语言,你要在里面找到乐趣,因为这门语言你做的就能马上感觉到,有一种所见即所得,博主这个篇文章只是简单讲解一下,启发作用,博主只是做了一个简单的倒计时器,你可以根据自己的想法做一个计时器或者类似电子手表一样的时钟。

每日一遍,快乐一天!!

6a04b428gy1fy7ab1pyrqg20c80bw417

开头展示效果:吸引你往后看哈哈哈

我的作品2 00_00_00-00_00_30

1.创建窗体应用文件并设计界面

创建一个窗体类,不会的童鞋看之前的文章啦🙌🙌🙌

image-20211119094237180

1.1 创建并拖ComboBOX控件设置属性

在这里我们设置静态的,不输入的ComboBOX,对于comboBOX显示样式有三个属性

image-20211119094814220

Simple是文本可编辑,下拉列表总可见;
DropDown是默认样式,文本可编辑,下拉需用户点击箭头;
DropDownList是文本不可编辑,下拉需用户点击箭头;需要注意的是DropDownList形式直接使用comboBox1.Text = "值";形式来赋值结果会显示为空,

1.2 设置进度条ProgressBar控件

我们在使用进度条控件是需要设置进度条最大值,步进量,Value属性博主在调用里面置零了为了方便重复调用。

image-20211119095259657

需要注意ProgressBar控件的几个属性
Maximum属性:用来设置或返回进度条能够显示的最大值,默认值为100。
Minimum属性:用来设置或返回进度条能够显示的最小值,默认值为0。
MarqueeAnimationSpeed属性:这个属性经常以毫秒为单位,显示加载的速度
Step属性:用来设置或返回一个值,该值用来决定每次调用PerformStep 方法时,  Value属性增加的幅度。例如,如果要复制一组文件,则可将 Step 属性的值设置为 1,并将 Maximum 属性的值设置为要复制的文件总数。在复制每个文件时,可以调用PerformStep方法按Step属性的值增加进度栏
Value属性:这个属性是用来显示控件的进度的,如果是0则进度为0,如果是100,则进度为100%;

1.3 设置时间Timer控件

Timer控件需要设置中断值,博主设置1秒,就是1秒停一下实现倒计时效果,先要打开Timer控件才能用哦,使用start打开哦

image-20211119095543651

reset () :停止正在运行的计时器,重置currentCount=0, 再次调用 start() 后,将运行计时器实例,运行次数为指定的重复次数 
start () :如果计时器尚未运行,则启动计时器
stop () : 停止计时器。 如果在调用 stop() 后调用 start(),则将继续运行计时器实例,运行次数为剩余的 重复次数(由 repeatCount 属性设置)
Interval :属性指定窗体上 Timer 事件之间的间隔(以毫秒为单位)//中止作用

image-20211119095848134

1.4 对剩余时间代码分析

博主改变了剩余时间的变化效果,每次选择都会改变剩余时间,默认为0秒。

image-20211119100248118

1.5 对Timer控件代码分析

image-20211119143208050

1.6 对倒计时按钮代码触发做代码处理

image-20211119143509269

1.6 整体代码及运行效果

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 倒计时
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int count = 0;//记录次数,每次相当一秒,把time减去count实现倒计时
        int time = 0;//全局变量用来得到我们comboBox的值
        private void Form1_Load(object sender, EventArgs e)//赋值
        {
            int i;
            for(i=1;i<100;i++)//给comboBox赋值1-99秒
            {
                comboBox1.Items.Add(i.ToString() + "秒");//追加到Item里面
            }
        }

        private void timer1_Tick(object sender, EventArgs e)//时间控件
        {
           
            count++;//每次加一
            label3.Text = (time - count).ToString() + "秒";//获取倒计时总秒数减去已经过去的秒数,实现倒计时
            progressBar1.Value = count;
            if(count==time)//当我们的count等于time说明剩余0秒
            {
                timer1.Stop();//结束停止时间控件
                System.Media.SystemSounds.Asterisk.Play();//播放系统提示音,不需要可以不写
                MessageBox.Show("时间到了!");//时间到了,出现弹窗
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            count = 0;
            progressBar1.Value = 0;//设置进度条为0,因为如果我们执行下一次需要把之前的已经到100%的进度条回到0
            string str = comboBox1.Text;
            time = Convert.ToInt32(str.Substring(0,(str.Length-1)));//获取选择的秒数
          //  MessageBox.Show(time.ToString());
            progressBar1.Maximum = time;//设置进度条最大值也就是100%为我们的timer值
            timer1.Start();//开始了就会循环调用timer函数,直到停止
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            label3.Text = comboBox1.Text;//修改剩余时间的默认值
        }
    }
}

效果展示:

我的作品2 00_00_00-00_00_30

总结

博主这篇文章主要用了两个控件,一个是进度条progressBar控件另一个是时间Timer控件,实现的效果还蛮好玩,对于初学者学习窗体应用是一个很好的入门小程序,最主要感觉没什么难度,如果使用其他语言可能比较难,哈哈哈,对了提一下,我们Timer控件使用比较多哦,在窗体应用里面,类似循环吧,好处是可以停止效果,比如你需要做什么接收处理,就可以利用这个控件每多少秒执行一次,因为它可以中断。好了,创作不易点赞关注评论收藏哦。

p56

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IC00

打赏就发新文

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值