3个回答
展开全部
不要定时器,你就自己写个循环凑合着用吧
比如
for (int i=0;i<10000;i++)Application.DoEvents();
你大概估计/实验一下要循环多少次才能消耗掉你需要的时间
当然啦,循环的次数需要根据目标机器的运算速度来改
这是最原始的延时方法
改进一点,可以搞个do while循环,每次循环时检测一下已经循环了多少时间
到达某个时间之后就退出循环
相关获取系统时间的函数自己找
要求高精度定时器时必须用这种方法
普通应用最好的方法还是用定时器,比如
WIN32 API SetTimer函数
WinForm那个Timer就是对这个函数的包装
你要自己调用的话,当然是用回调那种形式(这个函数有两大类用法)
不然的话要自己处理Timer的消息,比较麻烦
另外,
你们领导到底是“不让用Timer”还是“不让用控件”
如果是后者的话,Timer不画到窗口上也能用的……
(而且,timer不是控件 ,是组件)
比如
for (int i=0;i<10000;i++)Application.DoEvents();
你大概估计/实验一下要循环多少次才能消耗掉你需要的时间
当然啦,循环的次数需要根据目标机器的运算速度来改
这是最原始的延时方法
改进一点,可以搞个do while循环,每次循环时检测一下已经循环了多少时间
到达某个时间之后就退出循环
相关获取系统时间的函数自己找
要求高精度定时器时必须用这种方法
普通应用最好的方法还是用定时器,比如
WIN32 API SetTimer函数
WinForm那个Timer就是对这个函数的包装
你要自己调用的话,当然是用回调那种形式(这个函数有两大类用法)
不然的话要自己处理Timer的消息,比较麻烦
另外,
你们领导到底是“不让用Timer”还是“不让用控件”
如果是后者的话,Timer不画到窗口上也能用的……
(而且,timer不是控件 ,是组件)
展开全部
lable.text=10;
for(int i=10,i>-1,i++)
{
lable.text=i;
if(i==0)
{
lable.visiable=flase;
}
}
如果你需要时间间隔的话可以改成时间,或是在for里面加个计数的1000下走一次for
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个Timer控件就搞定
追问
timer 就是定时器
不要定时器 ,有其他的方法吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询