請問在哪些情況下用Do Evens?
他有哪些意義和用途?

解决方案 »

  1.   

    我一般在循环中使用。用以将控制权交给操作系统来相应别的进程。
    DoEvents 函数
          转让控制权,以便让操作系统处理其它的事件。语法DoEvents( )说明DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。
      

  2.   

    当你有大量代码连续执行的情况下,例如楼上说的大量循环中。
    目的就是不让你的代码执行不独占系统资源,给系统留出一些时间片执行多任务。例如,你在用轮询方式等待串口的数据,就可以Do Until comm1.mycomm.CommEvent = comEvReceive And mycomm.InBufferCount > 0 
    DoEvents
    Loop如果你不加 DoEvents,控件的事件和属性就不会改变。因为系统没有机会做这些。
      

  3.   

    就是把控制权交给系统.
    在一个比较长的循环里,要用DOEVENTS,否则你的程序会假死在那里,直到循环结束
      

  4.   

    你可以在一些很长的等待过程中插入  DOEVENTS
      

  5.   


    dim rs as new recordsetrs.movefirst
    rs.delete
    rs.delete
    rs.delete当你执行第二个删除记录语句时,便开始会出错,可以改为rs.movefirst
    rs.delete
    doevents
    rs.delete
    doevents
    rs.delete
      

  6.   

    當數據 處理很多時,VB需要設置斷點,所以用doeventsdoevents 一般都是做延進處理,與sleep()一起使用。doevents
    sleep(10)  '延時10毫秒
      

  7.   

    返回一个整数,表示当前打开的form数