VB6,一个按钮的过程执行时间特别长大约15秒,在其执行过程中,要即时的刷新一个计数的信息,此计数信息在一个LABEL控制中显示。但我现在点击了此按钮后,计数的信息看不到刷新,也就是看不到LABEL信息的刷新,直到此按钮的过程执行完毕,才看到计数信息,但此时的计数信息是最后的那个数。如何解决此问题呢。

解决方案 »

  1.   

    在耗时较长的地方添加doevents
      

  2.   

    如果长时间执行的代码是循环,在循环中加入LABEL.Refresh否则,可以在 Timer 事件中加入以上语句。但 Timer 事件在编译成 .exe 才会并行。
      

  3.   

    我一般是在费时的过程里加上下面2句,我觉得同时用效果不错
    LABEL.Refresh 
    doevents
      

  4.   

    加 DoEvents 进行界面刷新。不过如果是个循环,就不要每个循环都刷新,这样反而因为刷得太厉害而产生闪烁。
    按照整个循环的耗时,每隔一定次序的 循环才刷新一次,控制在 25帧/秒 左右的刷新频率即可。
      

  5.   

    DoEvents 将控制切换到操作环境内核。只要此环境中的所有应用程序都有机会响应待处理事件,应用程序就又恢复控制。这不会使应用程序放弃焦点,但会使后台事件能够得到处理。