c#中有一个叫做timespan的数据类型,可以这样构造:

TimeSpan ts = new TimeSpan(, , );

TimeSpan(hour,minute,second);

然后拖进去一个timer,叫timer1

timer1.Interval=1000;

设置一秒一个周期

然后在timer的事件里这样写

private void timer1_Tick(object sender, EventArgs e)
{
String str = ts.Hours.ToString() + ":" + ts.Minutes.ToString() + ":" + ts.Seconds.ToString();
label1.Text = str;//label1用来显示剩余的时间
ts = ts.Subtract(new TimeSpan(, , ));//每隔一秒减去一秒
if (ts.TotalSeconds < 0.0)//当倒计时完毕
{
timer1.Enabled = false;
MessageBox.Show("考试时间到,系统将强行交卷");//提示时间到,下面可以加你想要的操作
}
}

界面设计

namespace Countdown
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null; /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} #region Windows 窗体设计器生成的代码 /// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.button1 = new System.Windows.Forms.Button();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(, );
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(, );
this.button1.TabIndex = ;
this.button1.Text = "开启页面";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// timer1
//
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// button2
//
this.button2.Location = new System.Drawing.Point(, );
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(, );
this.button2.TabIndex = ;
this.button2.Text = "button2";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(, );
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button button2;
}
}

界面后台

using System;
using System.Windows.Forms; namespace Countdown
{
public partial class Form1 : Form
{
private TimeSpan ts = new TimeSpan(, , );
private Form2 frm2 = null; public Form1()
{
InitializeComponent(); } private void button1_Click(object sender, EventArgs e)
{
ts = new TimeSpan(, , );
timer1.Enabled = true; frm2 = new Form2();
frm2.ShowDialog(this); } private void timer1_Tick(object sender, EventArgs e)
{
String str = ts.Seconds.ToString();
frm2.current_time = str; ts = ts.Subtract(new TimeSpan(, , ));
if (ts.TotalSeconds < 0.0 && !frm2.EnterPhone)
{
timer1.Enabled = false;
frm2.Close();
} if (frm2.EnterPhone)
{
timer1.Enabled = false;
}
} private void button2_Click(object sender, EventArgs e)
{
Form4 f4 = new Form4();
f4.ShowDialog();
}
}
}

跳转界面的设计

namespace Countdown
{
partial class Form4
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null; /// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} #region Windows Form Designer generated code /// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.label1 = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("宋体", 25F);
this.label1.ForeColor = System.Drawing.Color.Red;
this.label1.Location = new System.Drawing.Point(, );
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(, );
this.label1.TabIndex = ;
this.label1.Text = "99S";
//
// timer1
//
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Form4
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(, );
this.Controls.Add(this.label1);
this.Name = "Form4";
this.Text = "Form4";
this.Load += new System.EventHandler(this.Form4_Load);
this.ResumeLayout(false);
this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1;
private System.Windows.Forms.Timer timer1;
}
}

跳转界面的后台

using System;
using System.Windows.Forms; namespace Countdown
{
public partial class Form4 : Form
{ private TimeSpan ts = new TimeSpan(, , );
public Form4()
{
InitializeComponent();
} private void Form4_Load(object sender, EventArgs e)
{ timer1.Enabled = true;
timer1.Start(); ts = new TimeSpan(, , ); } private void timer1_Tick(object sender, EventArgs e)
{
String str = ts.TotalSeconds.ToString();//ts.Seconds.ToString();
ts = ts.Subtract(new TimeSpan(, , ));
label1.Text = str;
if (ts.TotalSeconds < 0.0 )
{
timer1.Enabled = false;
this.Close();
} }
}
}

C# 倒计时的更多相关文章

  1. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  2. Android开发案例 – 在AbsListView中使用倒计时

    在App中, 有多种多样的倒计时需求, 比如: 在单View上, 使用倒计时, 如(如图-1) 在ListView(或者GridView)的ItemView上, 使用倒计时(如图-2) 图-1 图-2 ...

  3. JS案例之3——倒计时

    利用简单的数字累加循环模拟倒计时的效果,逻辑比较简单.如果大牛们有更好的办法欢迎补充. 这种效果经常用于在规定的时间做某件事.比如在1分钟之后重新发送验证码等. 案例演示: 源代码如下: <!D ...

  4. js倒计时-倒计输入的时间

    计算指定时间到指定时间之间相差多少天.时.分.秒. 节日.活动.商城常用. 原理: 主要使用到时间戳,也就是从1970 年 1 月 1 日 到指定时间的毫秒数. 1. 求出毫秒差 :当两个时间直接进行 ...

  5. 微信小程序定时器组件(输入时间字符串即可倒计时)

    昨天写了代码,今天发现要重用,干脆就抽出来做个组件得了,顺便还改善了一下代码通用性. 昨天的代码在这里 github下载地址 用法: 引入: var timer = require('../../pl ...

  6. jQuery获取短信验证码+倒计时实现

    jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...

  7. 纯js实现10分钟倒计时

    一个简单实现倒计时的小栗子~ 效果图:简陋的不能再简陋了,捂脸 代码: <!DOCTYPE HTML> <html> <head> <title> 倒计 ...

  8. Android 在线订单倒计时设计

        接到一个需求,用户下单后,商店这边需要显示在线订单列表,订单十分钟内有效.于是需要设计倒计时,显示每个订单剩余处理时间.       倒计时剩余时间: 订单创建时间 + 10分钟  - 系统当 ...

  9. js获取手机验证码倒计时的实现

    方案一 <div class="div user-input"> <input type="number" class="code& ...

  10. JavaScript倒计时

    倒计时: 1.设置一个有效的结束日期 2.计算剩余时间 3.将时间转换成可用的格式 4.输出时钟数据作为一个可重用的对象 5.在页面上显示时钟,并在它到达0时停止 <div id="c ...

随机推荐

  1. INSERT INTO IF EXISTS

    INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM booksWHERE ...

  2. AR介绍

    AR介绍 AR全名扩增实境,是一种实时融合现实与虚拟的图像技术. AR技术的三板斧:感知(寻找目标定位位置-与环境交互),渲染(实现产品交互-与客户交互),追踪(捕捉目标运动轨迹-客户环境上下文). ...

  3. PTA (Advanced Level) 1008 Elevator

    Elevator The highest building in our city has only one elevator. A request list is made up with Npos ...

  4. JSON知识点

    什么是JSON? JSON是Javascript Object Notation(Javascript对象表示法)的缩写,是一种数据格式,而并非一种编程语言. 语法 JSON的语法可以表示以下三种类型 ...

  5. Css相册

    对于相册,大家都很熟悉,常见的一种如下图所示: 当你点击下面的数字的时候,就会换一张图片,直接用链接就可以实现,很简单.下面我们将介绍其他两种css相册. 第一种css相册: 我们先来看看示意图: 当 ...

  6. angularjs文档下载

    路过 存文件而已

  7. 使用nginx+tomcat将所有请求都转发到一个页面

    1.将页面放到tomcat的root目录下,即ROOT/weihu.html 2.修改nginx配置文件 server{ listen ; # nginx监听的端口 root /opt/apache- ...

  8. [亲测!超级简单] Centos 安装Python3.6环境

    配置好Python3.6和pip3安装EPEL和IUS软件源 yum install epel-release -y yum install https://centos7.iuscommunity. ...

  9. CentOS7部署Django项目

    1. 云服务器 这里使用的是腾讯云选择系统:CentOS7.3 记住云服务器登录密码 2. 配置Python3环境 默认Python环境为python2.7,yum安装是需要python2的环境的 安 ...

  10. 【 js 基础 】【 源码学习 】 深浅拷贝

    underscore的源码中,有很多地方用到了 Array.prototype.slice() 方法,但是并没有传参,实际上只是为了返回数组的副本,例如 underscore 中 clone 的方法: ...