先在窗口中加入一个计时器控件:(timer1)用于触发计时;一个Label控件:(bable1)用于显示时间;两个按钮:(btnStar)用于开始/停止计时,(btnClear)用于计时器清零。
声明一个整型变量:t,用于获取毫秒,然后在窗口代码中加入以下代码:
声明一个整型变量:t,用于获取毫秒,然后在窗口代码中加入以下代码:
- private int t = 0;
- void MainFormLoad(object sender, System.EventArgs e)
- {
- this.timer1.Enabled = false;
- this.timer1.Interval = 1;
- }
- //计时函数
- public string GetAllTime(int time)
- {
- string hh, mm, ss, fff;
- int f = time%100; // 毫秒
- int s = time/100; // 转化为秒
- int m = s/60; // 分
- int h = m/60; // 时
- s = s%60; // 秒
- //毫秒格式00
- if(f<10)
- {
- fff = "0" + f.ToString();
- }
- else
- {
- fff = f.ToString();
- }
- //秒格式00
- if(s<10)
- {
- ss = "0" + s.ToString();
- }
- else
- {
- ss = s.ToString();
- }
- //分格式00
- if(m<10)
- {
- mm = "0" + m.ToString();
- }
- else
- {
- mm = m.ToString();
- }
- //时格式00
- if(h<10)
- {
- hh = "0" + h.ToString();
- }
- else
- {
- hh = h.ToString();
- }
- //返回 hh:mm:ss.ff
- return hh + ":" + mm + ":" + ss + "." + fff;
- }
- //开始计时按钮单击事件
- void BtnOKClick(object sender, System.EventArgs e)
- {
- if(timer1.Enabled == false)
- {
- this.btnOK.Text = "停止计时";
- this.timer1.Enabled = true;
- }
- else
- {
- this.btnOK.Text = "开始计时";
- this.timer1.Enabled = false;
- }
- }
- //时钟控件事件
- void Timer1Tick(object sender, System.EventArgs e)
- {
- t = t + 1;//得到总的毫秒数
- this.label1.Text = GetAllTime(t);
- }
- //计时器清零
- void BtnClearClick(object sender, System.EventArgs e)
- {
- t = 0;
- //如何正在计时,则先停止再清零,否则直接清零
- if(this.timer1.Enabled == true)
- {
- this.BtnOKClick(sender,e);
- label1.Text = GetAllTime(t);
- }
- else
- {
- label1.Text = GetAllTime(t);
- }
- }
- PS:
- 有问题,要加上 if (m == 60) 否则分钟可以超过59,变成60,61...
- {
- m = 0;
- }