C#项目练习系列--1.倒计时器
- 实操
- 感想
- 代码
实操
总体实现功能:选定计时时间—点击开始计时—进度条和剩余时间显示—提示时间到。
软件版本:VS2019
1.新建工程
选择c#,windows窗体应用,.NET Framework版本选择4或4以下时最后生成的应用程序在XP系统可运行,4以上只能在WIN7以上系统运行
2.拖拉组件(工具),所用到的工具有 button(按钮) , comboBox(下拉列表) , progressbar(进度条) , label (标签) , timer(定时器) ,工具可搜名字,在鼠标指向工具名称时也有相对应的解释。
把所需要的工具模块拖拉进来之后,点击各个工具可在属性界面修改名称/大小/背景等等
当所有组件属性设置好之后,分析各组件之间的工作逻辑,比如倒计时器的工作逻辑是: 设定倒计时间—开始计时—显示进度及剩余时间—提示完成。
然后开始编程,C#在工程建立之后有相当于有了一个主函数,而需要实现的功能在双击组件之后就会建立对应子函数,需要在点击组件之后实现什么功能就在子函数编写。比如点击开始计时之后要显示进度及剩余时间,则在设计界面双击“开始计时”按钮,就会自动跳到程序界面并建立空白子函数,在子函数里加入所需功能。
同样的,别的功能模块也一样实现
感想
C# 设计界面类似于MATLAB 的 simulink 功能,只需要先把所需要的组件拉进来,再设置属性数据,然后编写各模块代码,比较方便。编程规范跟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.Windows.Forms;
namespace TEST_1
{
public partial class Form1 : Form
{
int time_count = 0;
int time_remain= 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int i = 0;
for(i = 1; i < 100; i++)
{
comboBox1.Items.Add(i.ToString() + " 秒");
}
}
private void button1_Click(object sender, EventArgs e)
{
string str = comboBox1.Text; //获取所需计时时间
time_remain = Convert.ToInt16(str.Substring(0,2)); // 从0位开始,取前两位
progressBar1.Maximum = time_remain; //获取进度条最大值
timer1.Start(); //开始计时
}
private void timer1_Tick(object sender, EventArgs e)
{
time_count++;
label3.Text = (time_remain - time_count+1).ToString() + "秒";
progressBar1.Value = time_count;
if(time_count == time_remain)
{
timer1.Stop();
System.Media.SystemSounds.Asterisk.Play();
MessageBox.Show("时间到","提示");
}
}
}
}