在timer事件中用call調用模塊的代碼,而模塊的代碼為do...loop語句,且循環結束條件需同一個timer參與,因此成為死循環.同樣的沖突也發生在keydown中,按回車進入模塊循環語句,但由于電腦判斷為回車事件仍在,導致在循環結束前輸入了n個回車......有沒有解決辦法?最好是調用模塊語句后,就能與原語句切斷聯系.請以最簡單(代碼最少,所涉及的變量及控件最少,聲明最少)的方法回答.
熱心網友
vb不具備多線程能力,所以只能另尋方法--Doevents法dim conts as boolean '全局變量:是否繼續循環sub loops() '死循環子程序 do doevents if conts=false then exit sub loopend subprivate sub timer1_timer()if (你想讓他執行循環) and conts=false then conts=true:loops '這樣如果沒開始循環,就開始執行循環,如果已經開始就跳過if (你想結束循環) then conts=falseend sub這樣,你可以在Timer1的過程中加入判斷,當結束時,因為改變了conts的值,程序執行至判斷行自然就退出了。Doevents語句可以釋放Cpu給程序的其他部分
熱心網友
只能說明你的程序邏輯設計不合理,應該考慮換其他的思路。
熱心網友
1.引入一個全局邏輯變量,在循環體中作一判斷,如果該變量改變了,則退出循環,變量值由其他的輸入模塊控制2。檢測回車鍵:讀入鍵盤值,如果是回車鍵值則執行某段程序然后直接退出循環即可。