问题描述
我是在tree的afterselect事件中,利用timer的tick事件来显示进度条。但是进入到tick事件中。timer.enabled=true已经执行了,但是就是无法执行tick事件。当我在afterselec事件中执行timer.enabled=true,不执行timer.enabled=false,那进度条可以显示,这是什么原因呢?privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse){timer1.Enabled=true;//程序其他部分。。。。//timer1.Enabled=false;}
解决方案
解决方案二:
你中间的执行太快了。。。没给timer显示的机会。
解决方案三:
timer启动,还没进入tick,就被disable了。。。
解决方案四:
我中间程序执行的事件要有一段时间,时间上应该是够的,有的要执行30秒以上的
解决方案五:
timer设计间隔?
解决方案六:
设计间隔是100,刚才又改成10,都不行
解决方案七:
使用System.Threading.Timer看看可能你的程序消息队列太长了,导致timer消息被延后
解决方案八:
或者手动触发下Tick事件看看timer1_Tick(timer1,EventArgs.Empty);
解决方案九:
貌似只看到你设置timer的enable,没设置启动啊。。。timer1.Start();启动timer
解决方案十:
估计还是进度条显示的代码有问题。另外winformtimer的精度大概是55ms左右,再小也没用了。
解决方案十一:
引用8楼gxttr的回复:
貌似只看到你设置timer的enable,没设置启动啊。。。timer1.Start();启动timer
刚才设置了,还是没用而且,只要我在事件中,不设置timer.enabled=false,进度条就能执行。关键是,我在timer.enabled=true这里设置了断点后,发现改句能够显示进度条
解决方案十二:
实际上就是:timer1.Enabled=true;//程序其他部分。。。。//timer1.Enabled=false;如果没有timer1.Enabled=false;那timer的tick事件就能执行,如果两个都在的话,就不能进入到tick事件中。我是一新手,盼指教!!
解决方案十三:
帮忙解决啊,郁闷中
解决方案十四:
用委托试试吧。显示进图条的时候。
解决方案十五:
timer设置了timer1.Enabled=true;计时器就开始工作了,无需start的
解决方案:
开个线程做
解决方案:
楼上正解。你的主线程都被timer开启和关闭之间的代码占用了,所以不会显示。只能新开线程用来显示。