C# 倒计时
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# 倒计时的更多相关文章
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- Android开发案例 – 在AbsListView中使用倒计时
在App中, 有多种多样的倒计时需求, 比如: 在单View上, 使用倒计时, 如(如图-1) 在ListView(或者GridView)的ItemView上, 使用倒计时(如图-2) 图-1 图-2 ...
- JS案例之3——倒计时
利用简单的数字累加循环模拟倒计时的效果,逻辑比较简单.如果大牛们有更好的办法欢迎补充. 这种效果经常用于在规定的时间做某件事.比如在1分钟之后重新发送验证码等. 案例演示: 源代码如下: <!D ...
- js倒计时-倒计输入的时间
计算指定时间到指定时间之间相差多少天.时.分.秒. 节日.活动.商城常用. 原理: 主要使用到时间戳,也就是从1970 年 1 月 1 日 到指定时间的毫秒数. 1. 求出毫秒差 :当两个时间直接进行 ...
- 微信小程序定时器组件(输入时间字符串即可倒计时)
昨天写了代码,今天发现要重用,干脆就抽出来做个组件得了,顺便还改善了一下代码通用性. 昨天的代码在这里 github下载地址 用法: 引入: var timer = require('../../pl ...
- jQuery获取短信验证码+倒计时实现
jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...
- 纯js实现10分钟倒计时
一个简单实现倒计时的小栗子~ 效果图:简陋的不能再简陋了,捂脸 代码: <!DOCTYPE HTML> <html> <head> <title> 倒计 ...
- Android 在线订单倒计时设计
接到一个需求,用户下单后,商店这边需要显示在线订单列表,订单十分钟内有效.于是需要设计倒计时,显示每个订单剩余处理时间. 倒计时剩余时间: 订单创建时间 + 10分钟 - 系统当 ...
- js获取手机验证码倒计时的实现
方案一 <div class="div user-input"> <input type="number" class="code& ...
- JavaScript倒计时
倒计时: 1.设置一个有效的结束日期 2.计算剩余时间 3.将时间转换成可用的格式 4.输出时钟数据作为一个可重用的对象 5.在页面上显示时钟,并在它到达0时停止 <div id="c ...
随机推荐
- docker namespaces
https://docs.docker.com/engine/security/userns-remap/#prerequisites 注:以下验证环境为centos7.5 docker 18.09. ...
- 复刻smartbits的国产网络测试工具minismb-如何测试路由器
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- MySQL进程-状态等参数详解
查看连接 mysql -uroot -p123456 -e "show processlist;" 查看正在执行的sql语句 mysql -uroot -p123456 -e &q ...
- UVA 1605 Building for UN(思维)
题目链接: https://cn.vjudge.net/problem/UVA-1605#author=0 /* 问题 设计一个包含若干层的联合国大厦,其中每一层都是等大的网格,每个格子分配给一个国家 ...
- node.js遇到的问题
1.cann't find module 'request' 不能找到’request' 模块 解决方法:找到项目的根路径,cd到该路径,运行命令 npm install request 2.no ...
- PHP错误集锦
错误原因:分页数据不够,使用了缓存,但是model类中又没有添加缓存.解决办法:在model类中添加缓存,内容结束时清空缓存.
- winform窗体 小程序【进程】
进程 一个应用程序就是一个进程,我的理解是,只要是打开应用程序,就会创建进程. 在.NET框架在using.System.Diagnostics名称空间中,有一个类Process,用来创建一个新的进程 ...
- SQL - 先安装SQL2008 R2后安装AD导致无法正常登陆数据库(无法启动MSSQLSERVER)
分析原因:安装AD后,系统改为使用域用户登陆,原先安装SQL时设置的“本地用户”信息已经修改,当前(域)用户没有权限访问MSSQLSERVER实例文件夹或整个SQL文件夹. 解决方法: 1.打开“服务 ...
- [日常] Go语言圣经--接口约定习题2
练习 7.3: 为在gopl.io/ch4/treesort (§4.4)的*tree类型实现一个String方法去展示tree类型的值序列. package main import( "f ...
- Expression<Func<T>>和Func<T>
以前用EF的时候,由于where的时候有Expression<Func<T>>和Func<T>两种查询条件,误用了Func<T>那个重载,后来还想通过f ...