为了熟练运用C#,学习做一个倒计时的应用程序,做出来的模样如下所示
1.功能要求
(1)定时时间的设定,使用下拉框进行选择开始需要设定时间数值
(2)对于计时中剩余时间的显示,使用label组件进行显示
(3)进度条对于时间计时的一个显示进度
(4)按钮操作:开始计时——点击之后开始计时,或者暂停计时按钮点击之后点击该按钮再继续计时。
暂停计时——点击之后暂停计时,点击开始计时之后恢复计时。
停止计时——点击之后停止计时,所有都清零。
2.项目实现
新建一个项目,进行项目的实现
(1)窗体属性的设置,这里我设置了窗体的背景、名称以及图标
点击窗体,然后在右下方的属性栏中进行修改窗体的属性
如下图所示可以使用自己的图片资源来做窗体的背景
然后窗体的图标可以自己制作或者网上下载,具体可百度,注意的是要求是后缀为ico的图片资源文件
(2)组件的设置,将使用到的组件拖动到窗体中,根据自己的习惯可以把组件摆放到具体的位置,不再多说
(3)设置响应事件,比如点击按钮之后会出现什么反应,这个需要来部署
点击按钮的事件可以在窗体中点击组件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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
int count;
int time;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) //窗体创建之后运行的函数
{
for (int i = 1; i < 100; i++)
{
comboBox1.Items.Add(i.ToString()+" 秒"); //在下拉列表中添加元素(字符类型)
}
comboBox1.Text = "1 秒";
label3.Text = "";
}
private void timer1_Tick(object sender, EventArgs e)
{
count++;
label3.Text=(time-count).ToString()+"秒";//显示剩余时间
progressBar1.Value=count;//设置进度条的进度
if (count == time)
{
timer1.Stop(); //时间到,停止计时
System.Media.SystemSounds.Asterisk.Play();//停止计时
MessageBox.Show("时间到了!", "提示");//弹出提示框
}
}
//开始计时
private void button1_Click(object sender, EventArgs e)//开始计时按钮点击
{
string str=comboBox1.Text;//将下拉内容添加到变量中
time = Convert.ToInt16(str.Substring(0, 2));//获取设定的定时时间值
progressBar1.Maximum = time;//进度条的最大数值
timer1.Start();//开始计时
}
//暂停计时
private void button2_Click(object sender, EventArgs e)
{
count = 0;//计数清零
string str = comboBox1.Text;//将下拉内容添加到变量中
time = Convert.ToInt16(str.Substring(0, 2));//获取设定的定时时间值
progressBar1.Maximum = time;//进度条的最大数值
progressBar1.Value = 0;//进度条显示长度改为0
label3.Text = time + "秒";//显示剩余时间
timer1.Stop();//暂停计时
}
//停止计时
private void button3_Click(object sender, EventArgs e)
{
string str = comboBox1.Text;//将下拉内容添加到变量中
time = Convert.ToInt16(str.Substring(0, 2));//获取设定的定时时间值
progressBar1.Maximum = time;//进度条的最大数值
progressBar1.Value = count;//进度条的显示长度
label3.Text = time - count + "秒";//显示剩余时间
timer1.Stop();//停止计时
}
}
}