C#上位机(定时器计数)

1.对窗体进行编辑,并对每一个控件进行属性修改
在这里插入图片描述

1.控件可以直接拖进窗体中;
2.对每一个控件进行修改;主要修改Test(窗体显示的部分)和Name(内部函数名,一般建议大驼峰格式命名。)
3.特别是组件,一般不在窗体中显示,比如Timer,串口等。定时器上位机用到的是Timer组件,注意对其初始化时一般为1000ms。

在这里插入图片描述
定时器初始化设置为1s。
在这里插入图片描述
2.编写函数

2.1 实现下拉框列表中有数据,并对其进行初始化。实现该功能,在窗体函数中撰写。双击窗体部分,创建函数。

//窗体函数
private void FormTimerTest_Load(object sender, EventArgs e)
{
     //下拉框计数范围
     for (int i = 1; i < 100; i++)
     {
         //初始化下拉框,数字后加一个空格是为了更容易获取字符
         //每一个变量都属于一个对象,i.ToString()获取字符串。
         comboBox1Count.Items.Add(i.ToString() + " 秒");
     }
     //默认下拉框显示为“1 秒”
     comboBox1Count.Text = "1 秒";
}
//开始计时按钮函数
private void button1Start_Click(object sender, EventArgs e)
{
	//存储设定的定时值
	int time = 0;
	//将下拉框数添加至一个变量中
	string str = comboBox1Count.Text;
	//获取str中的子字符串,占两个字节,从0号位置开始。注意此汉字占一个字节。
	string data = str.Substring(0,2);
	//将字符串转换为十六位带符号整形,得到设定的整形定时值。
	time = Convert.ToInt16(data);
	}

在这里插入图片描述
1.ToInt16将字符串转换为十六位带符号整形,得到设定的整形定时值。
*2.public string Substring(int startIndex, int length);
子字符串从指定的字符位置开始且具有指定的长度在这里插入图片描述
*

2.2 实现定时器函数,实现该功能,双击定时器组件。

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 Timer
{
    public partial class FormTimerTest : Form
    {
        //存储设定的定时值
        int time = 0;
        //用于定时器计数
        int count = 0;


        public FormTimerTest()
        {
            InitializeComponent();
        }

        //开始计时按钮函数
        private void button1Start_Click(object sender, EventArgs e)
        {

            //将下拉框数添加至一个变量中
            string str = comboBox1Count.Text;
            //获取str中的子字符串,占两个字节,从0号位置开始。注意此汉字占一个字节。
            string data = str.Substring(0, 2);
            //将字符串转换为十六位带符号整形,得到设定的整形定时值。
            time = Convert.ToInt16(data);
            //开始计时
            timer1.Start();
        }

        //窗体函数
        private void FormTimerTest_Load(object sender, EventArgs e)
        {
            //下拉框计数范围
            for (int i = 1; i < 100; i++)
            {
                //初始化下拉框,数字后加一个空格是为了更容易获取字符
                //每一个变量都属于一个对象,i.ToString()获取字符串。
                comboBox1Count.Items.Add(i.ToString() + " 秒");
            }
            //默认下拉框显示为“1 秒”
            comboBox1Count.Text = "1 秒";
        }

        //定时器函数
        private void timer1_Tick(object sender, EventArgs e)
        {

            //记录当前秒数。初始化是1000ms
            count++;
            //获取剩余的秒数,time是设置的定时值,count是系统每经过1秒,则加一次。即(time - count)是剩余的时间。
            int remain = time - count;
            //将剩余的描述显示在label3RemainTimeCount控件中。
            label3RemainTimeCount.Text = remain.ToString() + " 秒";
            //count == time则时间到
            if (count == time)
            {
                //停止计时
                timer1.Stop();
                //设置提示音
                System.Media.SystemSounds.Asterisk.Play();
                //弹出提示框
                MessageBox.Show("时间到!", "提示");
            }
        }
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.对滚动条进行设置
在这里插入图片描述
在这里插入图片描述

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 Timer
{
    public partial class FormTimerTest : Form
    {
        //存储设定的定时值
        int time = 0;
        //用于定时器计数
        int count = 0;


        public FormTimerTest()
        {
            InitializeComponent();
        }

        //开始计时按钮函数
        private void button1Start_Click(object sender, EventArgs e)
        {

            //将下拉框数添加至一个变量中
            string str = comboBox1Count.Text;
            //获取str中的子字符串,占两个字节,从0号位置开始。注意此汉字占一个字节。
            string data = str.Substring(0, 2);
            //将字符串转换为十六位带符号整形,得到设定的整形定时值。
            time = Convert.ToInt16(data);
            //设置进度条最大值
            progressBar1Time.Maximum = time;
            //开始计时
            timer1.Start();
        }

        //窗体函数
        private void FormTimerTest_Load(object sender, EventArgs e)
        {
            //下拉框计数范围
            for (int i = 1; i < 100; i++)
            {
                //初始化下拉框,数字后加一个空格是为了更容易获取字符
                //每一个变量都属于一个对象,i.ToString()获取字符串。
                comboBox1Count.Items.Add(i.ToString() + " 秒");
            }
            //默认下拉框显示为“1 秒”
            comboBox1Count.Text = "1 秒";
        }

        //定时器函数
        private void timer1_Tick(object sender, EventArgs e)
        {

            //记录当前秒数。初始化是1000ms
            count++;
            //获取剩余的秒数,time是设置的定时值,count是系统每经过1秒,则加一次。即(time - count)是剩余的时间。
            int remain = time - count;
            //将剩余的描述显示在label3RemainTimeCount控件中。
            label3RemainTimeCount.Text = remain.ToString() + " 秒";
            //设置进度条进度
            progressBar1Time.Value = count;
            //count == time则时间到
            if (count == time)
            {
                //停止计时
                timer1.Stop();
                //设置提示音
                System.Media.SystemSounds.Asterisk.Play();
                //弹出提示框
                MessageBox.Show("时间到!", "提示");
            }
        }
    }
}

4.停止计数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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 Timer
{
    public partial class FormTimerTest : Form
    {
        //存储设定的定时值
        int time = 0;
        //用于定时器计数
        int count = 0;


        public FormTimerTest()
        {
            InitializeComponent();
        }

        //开始计时按钮函数
        private void button1Start_Click(object sender, EventArgs e)
        {
            //如果按钮显示“开始计时”
            if (button1Start.Text == "开始计时")
            {
                //防止下拉框没有设置默认值,造成的程序崩溃
                if (comboBox1Count.Text == "" && count == 0)
                { 
                    MessageBox.Show("请选择时间!","提示!");
                }
                else
                {
                    //将下拉框数添加至一个变量中
                    string str = comboBox1Count.Text;
                    //获取str中的子字符串,占两个字节,从0号位置开始。注意此汉字占一个字节。
                    string data = str.Substring(0, 2);
                    //将字符串转换为十六位带符号整形,得到设定的整形定时值。
                    time = Convert.ToInt16(data);
                    //设置进度条最大值
                    progressBar1Time.Maximum = time;
                    //开始计时
                    timer1.Start();
                    //计时完成后显示“停止计时”
                    button1Start.Text = "停止计时";
                }
            }
            //如果按钮显示“停止计时”
            else if (button1Start.Text == "停止计时")
            {
                //停止计时
                timer1.Stop();
                //进度条为当前值
                progressBar1Time.Value = count;
                //停止计时后下一步能进行的就是继续计时,或者重新运行程序开始计时。
                button1Start.Text = "继续计时";
            }
            //如果按钮显示“继续计时”
            else if (button1Start.Text == "继续计时")
            {
                //开始计时
                timer1.Start();
                //继续计时后下一步能进行的就是停止计时。
                button1Start.Text = "停止计时";
            }
            
        }

        //窗体函数
        private void FormTimerTest_Load(object sender, EventArgs e)
        {
            //下拉框计数范围
            for (int i = 1; i < 100; i++)
            {
                //初始化下拉框,数字后加一个空格是为了更容易获取字符
                //每一个变量都属于一个对象,i.ToString()获取字符串。
                comboBox1Count.Items.Add(i.ToString() + " 秒");
            }
            //默认下拉框显示为“1 秒”
            //comboBox1Count.Text = "0 秒";
        }

        //定时器函数
        private void timer1_Tick(object sender, EventArgs e)
        {

            //记录当前秒数。初始化是1000ms
            count++;
            //获取剩余的秒数,time是设置的定时值,count是系统每经过1秒,则加一次。即(time - count)是剩余的时间。
            int remain = time - count;
            //将剩余的描述显示在label3RemainTimeCount控件中。
            label3RemainTimeCount.Text = remain.ToString() + " 秒";
            //设置进度条进度
            progressBar1Time.Value = count;
            //count == time则时间到
            if (count == time)
            {
                //停止计时
                timer1.Stop();

                //执行完程序后,恢复最初状态
                //停止计时后,将进度条的值初始化0
                progressBar1Time.Value = 0;
                //定时数也设置为0
                count = 0;
                //开始计时
                button1Start.Text = "开始计时";

                //设置提示音
                System.Media.SystemSounds.Asterisk.Play();
                //弹出提示框
                MessageBox.Show("时间到!", "提示");
            }
        }
    }
}

5.运行后结果
在这里插入图片描述
在这里插入图片描述
往期链接:
c# 上位机(VS2013新建一个例程).

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值