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

1.对窗体进行编辑,并对每一个控件进行属性修改
C#上位机|C#上位机(定时器计数)
文章图片

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

定时器初始化设置为1s。
C#上位机|C#上位机(定时器计数)
文章图片

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 = https://www.it610.com/article/str.Substring(0,2); //将字符串转换为十六位带符号整形,得到设定的整形定时值。 time = Convert.ToInt16(data); }

C#上位机|C#上位机(定时器计数)
文章图片

1.ToInt16将字符串转换为十六位带符号整形,得到设定的整形定时值。
*2.public string Substring(int startIndex, int length);
子字符串从指定的字符位置开始且具有指定的长度C#上位机|C#上位机(定时器计数)
文章图片

*
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 = https://www.it610.com/article/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("时间到!", "提示"); } } } }

C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

3.对滚动条进行设置
C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

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 = https://www.it610.com/article/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 = https://www.it610.com/article/count; //count == time则时间到 if (count == time) { //停止计时 timer1.Stop(); //设置提示音 System.Media.SystemSounds.Asterisk.Play(); //弹出提示框 MessageBox.Show("时间到!", "提示"); } } } }

4.停止计数
C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

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 = https://www.it610.com/article/str.Substring(0, 2); //将字符串转换为十六位带符号整形,得到设定的整形定时值。 time = Convert.ToInt16(data); //设置进度条最大值 progressBar1Time.Maximum = time; //开始计时 timer1.Start(); //计时完成后显示“停止计时” button1Start.Text ="停止计时"; } } //如果按钮显示“停止计时” else if (button1Start.Text == "停止计时") { //停止计时 timer1.Stop(); //进度条为当前值 progressBar1Time.Value = https://www.it610.com/article/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 = https://www.it610.com/article/count; //count == time则时间到 if (count == time) { //停止计时 timer1.Stop(); //执行完程序后,恢复最初状态 //停止计时后,将进度条的值初始化0 progressBar1Time.Value = 0; //定时数也设置为0 count = 0; //开始计时 button1Start.Text ="开始计时"; //设置提示音 System.Media.SystemSounds.Asterisk.Play(); //弹出提示框 MessageBox.Show("时间到!", "提示"); } } } }

【C#上位机|C#上位机(定时器计数)】5.运行后结果
C#上位机|C#上位机(定时器计数)
文章图片

C#上位机|C#上位机(定时器计数)
文章图片

往期链接:
c# 上位机(VS2013新建一个例程).

    推荐阅读