我想創建一個非常簡單的程序,基本上是一個計時器。我有三組標籤,lbl_seconds
,lbl_minutes
和lbl_hours
。 這些標籤的默認值爲00:00
,我希望計時器爲每個標籤更改該標籤。我已經搜索了這個,但我似乎無法找到任何好的信息。創建一個簡單的計時器來計算秒,分鐘和小時
我需要三個獨立的計時器嗎?我也注意到,定時器有自己的tick事件處理程序。我想這是我需要改變標籤的價值。如何做到這一點?
我想創建一個非常簡單的程序,基本上是一個計時器。我有三組標籤,lbl_seconds
,lbl_minutes
和lbl_hours
。 這些標籤的默認值爲00:00
,我希望計時器爲每個標籤更改該標籤。我已經搜索了這個,但我似乎無法找到任何好的信息。創建一個簡單的計時器來計算秒,分鐘和小時
我需要三個獨立的計時器嗎?我也注意到,定時器有自己的tick事件處理程序。我想這是我需要改變標籤的價值。如何做到這一點?
我認爲你需要這種
Public Function GetTime(Time as Integer) As String
Dim Hrs As Integer 'number of hours '
Dim Min As Integer 'number of Minutes '
Dim Sec As Integer 'number of Sec '
'Seconds'
Sec = Time Mod 60
'Minutes'
Min = ((Time - Sec)/60) Mod 60
'Hours'
Hrs = ((Time - (Sec + (Min * 60)))/3600) Mod 60
Return Format(Hrs, "00") & ":" & Format(Min, "00") & ":" & Format(Sec, "00")
End Function
的東西,你打發時間(單位:秒)你想顯示在標籤的文本和時間將被格式化爲你喜歡它。
例如
lblTime.Text = GetTime(90)
這將顯示在標籤上00:01:30
。
僅供參考,你可以看到this project前一段時間我在FreeVBCode提交。唯一需要注意的是該項目在VB6中。你應該可以在Visual Studio中打開它。
這正是我所期待的。我設法混合了一些可行的代碼,但這很順利:) – 2010-10-21 18:13:43
對不起,還有一個問題。此功能僅用於格式化?它實際上沒有任何計數?我只是想知道我應該在timer_Tick事件中放置什麼。以小時顯示標籤:分鐘:秒都很好。但我仍然希望它能夠使用tick事件進行實際計數。我也會看看你的項目,也許在那裏得到一些線索。編輯:我想我解決了它。我聲明一個全局變量爲整數,並將其設置爲form_load事件上的值0。然後在tick事件中,我將此值設置爲自己+1。似乎工作得很好:) – 2010-10-22 07:43:07
正確地說。該功能只能格式化。您必須使用一個變量來存儲時間,然後使用'Timer'的'Tick'事件來控制時間(增加/減少)。你還必須輸入你的'Timer.Tick'事件,一個方法調用來顯示標籤上的時間。 – 2010-10-22 08:31:28
使用一個計時器和標籤的事件子變化值。
您需要一個計時器和三個計數器,用於秒,分鐘和小時。
計算分鐘,然後以分鐘/ 60爲模,如果返回0則開始計數分鐘。 模數分鐘/ 60,如果返回0,則開始計數小時。
我已經發現了很多我自己,正如第一篇文章所述。我對代碼的外觀更感興趣。我的意思是,我在標籤中使用了「00:00」的文本值。無法像這樣轉換爲Double,我至今還沒能做到這一點。 – 2010-10-21 06:40:06
在計時器刻度中嘗試鍵入 – bswietochowski 2010-10-21 07:37:11
下面是這種
Dim timercount As Integer = 60 'The number of seconds
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Timer1.Interval = 1000 'The number of miliseconds in a second
Timer1.Enabled = True 'Start the timer
End Sub
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
Timer1.Enabled = False 'Stop the timer
timercount = 60 'Reset to 60 seconds
lblOutput.Text = timercount.ToString() 'Reset the output display to 60
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
lblOutput.Text = timercount.ToString() 'show the countdown in the label
If timercount = 0 Then 'Check to see if it has reached 0, if yes then stop timer and display done
Timer1.Enabled = False
lblOutput.Text = "Done"
Else 'If timercount is higher then 0 then subtract one from it
timercount -= 1
End If
End Sub
通過添加一個計時器開始關閉。在任何你喜歡的地方調用它,在這個例子中,我將把它保持爲Timer1。添加標籤並將文本設置爲:00:00。
在代碼中的類已設置後(通常是公共類Form1中)讓一個變量作爲秒錶:Dim stopwatch As New Stopwatch
在計時器滴答事件代碼,把以下內容:(請注意,我00 :00標籤被稱爲標籤1)
Label1.Text = String.Format("{0}:{1}:{2}", watch.Elapsed.Hours.ToString("00"), watch.Elapsed.Minutes.ToString("00"), watch.Elapsed.Seconds.ToString("00"))
所有三個標籤都有默認的00:00還是每個標籤初始化爲00?在我看來,你只需要一個計時器,然後你需要有3個全局計數器來跟蹤秒,分鐘和小時。 – jangeador 2010-10-21 07:19:33
謝謝:)是的,每個標籤的默認值都是00:00,這使得解析字符串變得更加困難。可能是因爲:。現在,這可以分成兩個標籤嗎?秒和分鐘?而不是一個值爲00:00的標籤?你對全球計數器意味着什麼?不熟悉我的想法。 – 2010-10-21 07:35:52
我不確定全局計數器是否正確,我的意思是說你不需要解析字符串,只需使用變量來跟蹤h,m和s,並在每個tick事件中增加這些變量。然後,您可以將標籤值更改爲每個變量的值。您可以使用String.Format以任何您希望的方式格式化變量。 – jangeador 2010-10-21 08:00:38