創作內容

4 GP

【VB.NET】等待指定秒數

作者:解凍豬腳│2012-02-25 19:21:58│巴幣:206│人氣:5658

ㄤ骯

前幾天上課上到一半靈感突然出現,

想到原先Timer的功用是每隔一次設定好的時間就觸發一次tick的事件,

這次想要試試看把它改成停頓、等待指定時間,

於是寫了一個等待指定秒數專用的程式碼~(好孩子不要學,給我去乖乖上課)



這用法應該很好理解,就是把這段程式碼加到form裡面之後用wait(x)來執行,

x填等待的秒數,可以達到讓程式暫時停頓x秒之後才繼續執行的效果~

原理:

一、首先宣告一個叫做w_timer的timer,以及一個專門用來計數的w_tick。

二、定義一個函式(即前面提到的wait),裡面的用法是:

  首先先把w_tick歸零、以及設定好w_timer的tick間隔,

  再來是啟用w_timer,讓他開始計時--

  當計時開始就跳入一個循環(直到w_tick不小於1為止)。

  這個循環裡面的Application.DoEvents()有刷新畫面而防止卡住的功能。

  再另外設置好w_timer的事件,

  讓它每tick一次(也就是經過指定時間之後),就把w_tick的值+1。

三、當w_tick的值不小於1--

  好了,這時候w_tick的值不小於1,所以跳開了剛剛提到的循環。

四、wait的部分繼續執行之後的程式碼:

  把w_timer計時狀態關閉,並將其tick間隔設定為1 ms。

五、wait的函式執行結束,這樣子就達到了等待指定秒數的功能。

※ 注意一下 Do Until w_tick >= 1 這行,

  這裡 w_tick 的判定建議不要用 = 1,用 >= 1 會比較好


  因為每台電腦執行速度不同,

  若是等待間隔太小,可能電腦來不及判定完就已經 tick 超過一次了,

  這樣子會造成不斷地循環……

程式碼如下:

Dim WithEvents w_timer As New Timer
Dim w_tick As Integer
Private Sub wait(ByVal second As Integer)
    w_tick = 0
    w_timer.Interval = second * 1000
    w_timer.Enabled = True
    Do Until w_tick >= 1
        Application.DoEvents()
    Loop
    w_timer.Enabled = False
    w_timer.Interval = 1
End Sub
Private Sub w_timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles w_timer.Tick
    w_tick += 1
End Sub

套用上面的程式碼之後,執行下面這段程式碼可以測試效果:

Me.Text="000"
wait(3)
Me.Text="111"
wait(3)
Me.Text="222"
wait(3)
Me.Text="333"

注意看看你的Form會出現什麼效果吧

本篇VB教學到此為止~

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1540716
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:VB|Visual Basic|程式|程式語言|程式碼|VB.net|應用程式|巴哈姆特|巴哈|電腦

留言共 7 篇留言

卡琳 〥
看不懂

02-25 19:39

解凍豬腳
如果沒學過VB 看不懂是很正常的[e12]02-25 19:41
魔術蝦
看不懂

02-25 19:39

解凍豬腳
你有學過VB嗎02-25 19:41
魔術蝦

02-25 19:51

解凍豬腳
那很正常啊...如果對這有興趣可以慢慢摸索02-25 19:53
尬廣精
ㄤ骯 請給vb6

02-26 18:56

解凍豬腳
02-26 18:58
ㄨㄌㄍㄋㄋ
好想學~~

根本不知從何摸索起...[e27]

尼根本大濕[e30]

03-17 22:41

解凍豬腳
參考別人的專案~[e5]03-17 23:18
TEST001
大濕可教學vb6ㄇ ?沒基礎也不知從何學起 。

我會稱呼你濕腹的

08-05 08:58

解凍豬腳
我也幾乎沒基礎
網路上的教學就有很多了
我都是遇到什麼問題就丟什麼關鍵字08-05 15:04
愛亂玩的opp
2018年才看到這篇 直接拿來用還是可以執行
謝謝大師~~

11-05 07:16

我要留言提醒:您尚未登入,請先登入再留言

4喜歡★johnny860726 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:嘴砲入門-網路攻防戰基本... 後一篇:我決定加入思想偏差救治行...

追蹤私訊切換新版閱覽

作品資料夾

------------------ (0)

豬腳生活 (1)
日常雜談、巴哈大小事 (193)
煞氣a國中生 (7)
高中生活日誌 (55)
大學生活日誌 (34)
冬令營回憶錄 (19)
也許藏有一些小祕密吧? (3)
各式各樣的開箱文 (11)
貓科動物時間 (15)

------------------ (0)

繪圖創作 (1)
電繪插圖、草稿 (199)
短篇漫畫、單幅標語 (61)
上課太無聊的手繪塗鴉 (8)
不知道該怎麼分類的綜合作品 (18)

文字創作 (1)
草莓兵的國軍紀實 (14)
我與らい的點點滴滴 (12)
那些榮耀的時刻與心跳加速的瞬間 (60)
有感而發的隨筆之作、無法分類的短文 (17)

------------------ (0)

語言學習 (1)
日語:天気がいいから (5)
粵語:唔好再淨係識講粗口喇 (6)
英語:Hey, you! (1)

程式設計及電腦網路 (1)
系列文:跟著豬腳 C 起來 (10)
系列文:論壇網站運作原理 (3)
Go(Golang) (11)
Ruby / RGSS (7)
Visual Basic (13)
JavaScript (1)
各種原理 (17)

思想:多思考一下,世界會更不一樣 (1)
網路經驗、社會觀察 (23)
檸檬庫 (21)

數學:我來拯救你的期中考了 (1)
各類基礎觀念 (5)
國中生也能懂的微積分 (9)
微分方程 (0)

小說:用筆鋒劃出新世界的入口 (1)

繪圖:我也想畫出私巴拉西的美圖 (10)

------------------ (0)

施工中 (22)

不堪回首的痕跡、雜物堆放 (31)

------------------ (0)

未分類 (1)

ShuLongQinHu大家
小屋新增親兄弟貼貼穿越重生古埃及的小說 歡迎來看看看更多我要大聲說5小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】