不需要控件就可以,用多線程的方式實現,在窗體上放一個Label和一個button按鈕,代碼如下:
專注于為中小企業(yè)提供網站設計、成都做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鄂溫克免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯網行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。
Imports?System.Threading
Public?Class?Form1
Dim?Start?As?Double
Dim?td?As?Thread
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Label1.Text?=?"00:00:00?000"
Button1.Text?=?"開始"
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
If?Button1.Text?=?"開始"?Then
Button1.Text?=?"結束"
Start?=?DateAndTime.Timer
td?=?New?Thread(AddressOf?fun1)
td.Start()
Else
Button1.Text?=?"開始"
td.Abort()
End?If
End?Sub
'定義一個線程
Private?Sub?fun1()
Dim?elapsed?As?TimeSpan
Dim?Dg_txt?As?New?Dg(AddressOf?txt)
Do
elapsed?=?TimeSpan.FromMilliseconds((DateAndTime.Timer?-?Start)?*?1000)
Me.Invoke(Dg_txt,?elapsed.ToString,?Label1)
Thread.Sleep(100)
Loop
End?Sub
'定義一個委托
Delegate?Sub?Dg(ByVal?s?As?String,?ByVal?obj?As?Label)
Sub?txt(ByVal?s?As?String,?ByVal?obj?As?Label)
obj.Text?=?s
End?Sub
End?Class
dim a1 as timespan = dtEndTime -dtStartTime
dim a2 as integer = a1.TotalMilliseconds
這種功能用不到TIMER,TIMER控件用在這種地方也不適合。(假如你所統(tǒng)計的時間很短,在幾分中內話,可以使用,假如你統(tǒng)計的時間很長:幾小時、幾天幾夜,建議改用以下方式):
在你需要開始計時的地方加入一個記錄當前時間,在你想結束的地方也得到一個當前時間。然后將兩個時間相減。
希望以上思路可以幫到你。
elapsed.Milliseconds 獲取毫秒。
每100毫秒,do中的代碼執(zhí)行一次,執(zhí)行時間將大于100毫秒,這是產生誤差的地方之一。invoke執(zhí)行一個方法txt,必須等txt里面的代碼運行完畢,方法才能返回,期間占用的時間全是“誤差”。
無限循環(huán),且沒有退出機制,停不下來。
文章題目:vb.net毫秒計算,vb計算小時分鐘秒
網站URL:http://chinadenli.net/article40/heepeo.html
成都網站建設公司_創(chuàng)新互聯,為您提供域名注冊、企業(yè)建站、云服務器、響應式網站、服務器托管、手機網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯