VB提倡的是用定時(shí)器控件(Timer)的方法。首先在窗體放入一個(gè)Timer1和Command1,然后輸入以下代碼:
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、新昌網(wǎng)站維護(hù)、網(wǎng)站推廣。
Private?Sub?Command1_Click()
Timer1.Interval?=?1000
Timer1.Enabled?=?True
End?Sub
Private?Sub?Form_Load()
Timer1.Enabled?=?False
End?Sub
Private?Sub?Timer1_Timer()
MsgBox?"這個(gè)對(duì)話(huà)框是點(diǎn)擊按鈕1秒鐘后彈出來(lái)的"
Timer1.Enabled?=?False
End?Sub
此外還可以用API函數(shù)Sleep來(lái)延時(shí),或者利用循環(huán)結(jié)合時(shí)間函數(shù)來(lái)延時(shí),但它們都容易造成系統(tǒng)阻塞,所以不建議使用。
使用定時(shí)器控件還有一個(gè)最大好處,就是在延時(shí)期間你的程序還可以繼續(xù)運(yùn)行處理其他事務(wù)(比如鼠標(biāo)點(diǎn)擊、鍵盤(pán)輸入等)。而其他方法產(chǎn)生的延時(shí)效果,在延時(shí)期間就只能傻等,什么也做不了,甚至還有可能影響到其他程序。
Threading.Thread.Sleep(500)這句是線程停止等待的,在這500毫秒的時(shí)間里你的任何動(dòng)作都是不響應(yīng)的,理論上再SendKeys.Send(TextBox2.Text)這段時(shí)間內(nèi)你可以動(dòng)作,但是send是毫秒級(jí)完成的,你還沒(méi)有來(lái)得及響應(yīng)就進(jìn)入了下一次的循環(huán),所以跟卡死類(lèi)似
解決方法:通過(guò)timer定時(shí)器延時(shí)
第一個(gè)for完成對(duì)delay_time參數(shù)的控制,即共循環(huán)多少次內(nèi)部循環(huán)
第二個(gè)for(內(nèi)部循環(huán)),完成對(duì)j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
Imports System.Threading
Thread.Sleep(1000)’延遲1秒
2.PauseWait(1000)’延遲1秒
Public Sub PauseWait(ByVal HowLong As Long)
Dim tick As Long
tick = My.Computer.Clock.TickCount
Do
My.Application.DoEvents()
Loop Until tick + HowLong My.Computer.Clock.TickCount
End Sub