DataGridView实现倒计时功能(源码)
2024-10-15 13:47:44
需求:最近做一个即时通项目,需要结合OA项目;其中有一个待办事项需要倒计时,准备在DataGridView里展示,如图:
第一步:绑定数据
for (int intLoop = ; intLoop <= ; intLoop++)
{
this.dgvSteps.Rows.Add(
Test.Properties.Resources.PROCESS_READY,
intLoop.ToString(),
"第" + intLoop.ToString() + "个任务&为开始",
"{0}天{1}小时{2}分钟{3}秒",
"处理"
);
}
第二步:定义System.Threading.Timer(一定要在定义局部变量,不然会被回收的)
DateTime dtStart;
private System.Threading.Timer timerClose;
private void btnStart_Click(object sender, EventArgs e)
{
AutoResetEvent autoEvent = new AutoResetEvent(false);
timerClose = new System.Threading.Timer(new TimerCallback(timerCall), autoEvent, , );
dtStart = DateTime.Now.AddHours();
} private void timerCall(object obj)
{ TimeSpan ts = dtStart - DateTime.Now;
if (ts < TimeSpan.Zero)
{
for (int i = ; i < this.dgvSteps.Rows.Count; i++)
{
this.dgvSteps.Rows[i].Cells[].Value = "超时";
}
}
else
{
for (int i = ; i < this.dgvSteps.Rows.Count; i++)
{
this.dgvSteps.Rows[i].Cells[].Value = string.Format("{0}天{1}小时{2}分钟{3}秒", ts.Days, ts.Hours, ts.Minutes, ts.Seconds);
}
} }
源码地址:下载
最新文章
- 自定义view(一)
- yii2的权限管理系统RBAC简单介绍
- overload, override和overwrite之间的区别
- i686和x86_64的区别
- Unity. Navigation和寻路
- 原来腾讯还出过一个开源项目libco
- HTML5表单内元素的required属性
- ZOJ3689 Digging(01背包)
- ViewPager和View的事件响应规则
- 利刃 MVVMLight 3:双向数据绑定
- IOS任务管理之GCD使用
- Windows10 图标重建
- 【知识整理】这可能是最好的RxJava 2.x 入门教程(五)
- Health Check in eShop -- 解析微软微服务架构Demo(五)
- python_自定日历
- Linux 文本去重 之 命令sort 与 uniq
- [IOI2007] sails 船帆
- 第4章 DHCP服务
- 1e9个兵临城下
- ios12 siri 语音识别