c# 窗体 一个lable标签 动态显示时间 ,高手在哪里?倒数10个数 自动关闭!!

不要定时器!!... 不要定时器!! 展开
 我来答
荔菲彭泽07
2011-04-02 · TA获得超过724个赞
知道小有建树答主
回答量:505
采纳率:0%
帮助的人:689万
展开全部
不要定时器,你就自己写个循环凑合着用吧
比如
for (int i=0;i<10000;i++)Application.DoEvents();
你大概估计/实验一下要循环多少次才能消耗掉你需要的时间
当然啦,循环的次数需要根据目标机器的运算速度来改
这是最原始的延时方法

改进一点,可以搞个do while循环,每次循环时检测一下已经循环了多少时间
到达某个时间之后就退出循环
相关获取系统时间的函数自己找
要求高精度定时器时必须用这种方法

普通应用最好的方法还是用定时器,比如
WIN32 API SetTimer函数
WinForm那个Timer就是对这个函数的包装
你要自己调用的话,当然是用回调那种形式(这个函数有两大类用法)
不然的话要自己处理Timer的消息,比较麻烦

另外,
你们领导到底是“不让用Timer”还是“不让用控件”
如果是后者的话,Timer不画到窗口上也能用的……
(而且,timer不是控件 ,是组件)
52剪辑
2011-04-01 · 超过17用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:22.8万
展开全部
lable.text=10;
for(int i=10,i>-1,i++)
{
lable.text=i;
if(i==0)
{
lable.visiable=flase;
}
}
如果你需要时间间隔的话可以改成时间,或是在for里面加个计数的1000下走一次for
更多追问追答
追问
不行
追答
那用js实现,给你个例子,你看下,应该能看明白,是时间倒数的(还剩多长时间),

var allSeconds=;

function count(){

if(allSeconds=86400){
rr=rr+String(Math.floor(ms/86400))+"天";
ms=ms%86400;
}
if(ms>=3600){
rr=rr+String(Math.floor(ms/3600))+"小时";
ms=ms%3600;
}

if(ms>=60){
rr=rr+String(Math.floor(ms/60))+"分钟";
ms=ms%60;
}
rr=rr+String(ms)+"秒";
return rr;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-04-01 · TA获得超过109个赞
知道答主
回答量:103
采纳率:100%
帮助的人:57.8万
展开全部
一个Timer控件就搞定
追问
timer  就是定时器 
不要定时器 ,有其他的方法吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式