[问题] Application.DoEvents, winform要点两次

楼主: siate (yee)   2018-01-13 21:20:02
我有两个button,start和stop
我想要按下start后在winform上显示一直跑的数字
当按下stop就停止,程式码大概如下
flag = 0;
start
{
while(flag == 0)
{
label.Text = (i++).ToString();
Application.DoEvents();
}
}
stop
{
flag = 1;
}
我原本是用label.Update(),但发现程式在跑的时候winform完全不理按键
后来改成application.DoEvents问题解决了
但按下start后整个接口处于忙碌状态,光标移到button上不会变色
按一下接口后光标移到button上就有反应了,好像接口从假死状态活过来了一样
再按一下stop就可执行了
有方法可以让按下start后接口是处于随时可以按stop的状态吗
也就是说不用按两下,接口随时可接受外界触发的状态
作者: testPtt (测试)   2018-01-13 22:03:00
循环要写在别的thread跑 再去更新form的显示
作者: groovy2016   2018-01-13 23:20:00
可以看看action
作者: Litfal (Litfal)   2018-01-13 23:59:00
DoEvents...好古早的用法,好怀念阿XD
作者: wl02099278 (JiaRong)   2018-01-14 19:30:00
updateUI放控制label.text, thread事件内放while跑..
作者: disabledman (m.m.)   2018-01-24 20:41:00
执行绪囉

Links booklink

Contact Us: admin [ a t ] ucptt.com