不需要控件就可以,用多線程的方式實現,在窗體上放一個Label和一個button按鈕,代碼如下:
創(chuàng)新互聯公司是一家專注于成都網站建設、成都網站設計與策劃設計,南岸網站建設哪家好?創(chuàng)新互聯公司做網站,專注于網站建設10多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:南岸等地區(qū)。南岸做網站價格咨詢:13518219792
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
elapsed.Milliseconds 獲取毫秒。
每100毫秒,do中的代碼執(zhí)行一次,執(zhí)行時間將大于100毫秒,這是產生誤差的地方之一。invoke執(zhí)行一個方法txt,必須等txt里面的代碼運行完畢,方法才能返回,期間占用的時間全是“誤差”。
無限循環(huán),且沒有退出機制,停不下來。
是我以前自己設計的用來測試自己點鈔速度用的,希望是你需要的
以下是窗體的全部代碼
Public?Class?Form1
Dim?StartFlag?As?Boolean?=?False
Dim?secon?As?Integer
Dim?minut?As?Integer
'空格
Private?Sub?Form1_KeyUp(ByVal?sender?As?Object,?ByVal?e?As?System.Windows.Forms.KeyEventArgs)?Handles?Me.KeyUp
If?e.KeyCode?=?Keys.Space?Then
If?StartFlag?Then
StartFlag?=?False
Timer1.Enabled?=?False
If?Val(Strings.Right(Label1.Text,?2))??10?And?Val(Strings.Right(Label1.Text,?2))?=?0?Then?secon?=?0?:?minut?=?0?:?Label1.Text?=?"00:00"?:?Exit?Sub
ListBox1.Items.Add(Label1.Text.ToString)
ListBox1.SelectedItem?=?ListBox1.Items.Count?-?1
Label1.Focus()
Button1.Enabled?=?True
Label1.Text?=?"00:00"
secon?=?0
minut?=?0
Else
StartFlag?=?True
Timer1.Enabled?=?True
End?If
End?If
End?Sub
'加載
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
ListBox1.Items.Clear()
Label1.Text?=?"00:00"
Button1.Enabled?=?False
secon?=?0
minut?=?0
Label1.Focus()
End?Sub
'清空
Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click
Button1.Enabled?=?False
ListBox1.Items.Clear()
Label1.Focus()
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
secon?+=?1
If?secon?=?60?Then
secon?=?0
minut?+=?1
End?If
Dim?seconStr?As?String?=?secon
If?seconStr.Length?=?1?Then?seconStr?=?"0"?+?seconStr
Dim?minutStr?As?String?=?minut
If?minutStr.Length?=?1?Then?minutStr?=?"0"?+?minutStr
Label1.Text?=?minutStr?+?":"?+?seconStr
Label1.Focus()
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?SeconSun?As?Integer
If?ListBox1.Items.Count??0?Then
For?i?=?0?To?ListBox1.Items.Count?-?1
Dim?TemStr?As?String?=?ListBox1.Items.Item(i).ToString
Dim?TemInt1?As?Integer?=?Val(Strings.Right(TemStr,?2))
Dim?TemInt2?As?Integer?=?Val(Strings.Left(TemStr,?2))
Debug.Print(TemInt1.ToString)
Debug.Print(TemInt2.ToString)
SeconSun?+=?TemInt1?+?TemInt2?*?60
Debug.Print(SeconSun.ToString)
Next
TextBox1.Text?=?(SeconSun?/?ListBox1.Items.Count).ToString?+?"秒"
End?If
Label1.Focus()
End?Sub
End?Class
定時器中處理
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Timer1.Interval?=?10?'10毫秒刷新一次
Timer1.Start()?'開啟定時器
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
Label1.Text?=?Now
End?Sub
分享文章:vb點虐
+顯示毫秒的簡單介紹
瀏覽路徑:http://www.rwnh.cn/article0/ddjcpio.html
成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站建設、手機網站建設、網站內鏈、網站排名、、搜索引擎優(yōu)化
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯