我在一个窗体里有循环,有八个设备与串口通讯,用Timer控件定期去读,每次要循环八次,可能是中间间隔时间长,在我关闭窗体时,如果正好在循环过程中,窗体关闭后,会自动调用开打,要关几次才能关上,如果碰上循环完毕,就可以一次关掉,请问这个问题如何解决???

解决方案 »

  1.   

    sendmessage me.hwnd,wm_close,true,true
      

  2.   

    你在关闭时把timer的enable属性设为false就可以避免此类问题
      

  3.   

    设置一个全局变量:
    dim ExitLoop as Boolen在你的循环体内加上:
    for 循环
     DoEvents
      if ExitLoop then exit for
      ...
    next在你的“退出”按钮中加上
    sub Command1_Click
    ExitLoop= true
    Unload me
    end sub
      

  4.   

    我在是窗体的unload事件中写的,这样也可以吧!
    只是偶尔还是一次关不掉,要关二次才可以,不过比以前好多了,以前有时怎么都关不掉。
    能不能一次关掉呢?我错在哪了?
      

  5.   

    先关闭timer,退出其他使用了DoEvents的循环,才能彻底关闭form