我在Timer1_Timer事件中有一段代码,起码要5秒钟才能运行完。
在程序中还有一个Trap事件,这个事件是不定时触发的。
如果Timer正在运行,这时来了Trap事件,我想停止Timer或直接跳出来,可是用
timer1.Enabled =False 不行,我想不到别的方法了。救救我

解决方案 »

  1.   

    你试试这个
    Private Sub Command1_Click()
        Timer1.Enabled = True
    End SubPrivate Sub Command2_Click()
        Timer1.Enabled = False
    End SubPrivate Sub Timer1_Timer()
        me.Caption = Now
    End Sub
      

  2.   

    对,用Doevents可以将控制权交给其他进程。
      

  3.   

    timer1.Enabled =False 应该是可以的吧,
    发生 Trap 时
    timer1.Enabled=False
    执行完后再
    timer1.Enabled=True或者定义一个变量记录事件发生的时间,比如用 m_RaiseTime
    在 Trap 里
    m_RaiseTime=Now在 Timer 事件里判断if DateDiff("s", m_RaiseTime, Now)>=5 Then
          ''....要做的事的代码
          m_RaiseTime=Now
    End if
      

  4.   

    用timer1.Enabled=False是在执行完timer里的代码后才停的,我是想在它运行中就停止
      

  5.   

    但是 DoEvents 也会使 Timer1_Time 事件重复执行的,也就是说在 Timer1_Time 执行的过程中,又有一个新的 Timer1_Time 被执行了。是不是应该加上一个标志来判断一下。