回答
現在加入一個計時器,你的形式和時間間隔設置爲1000毫秒..
聲明具有當前時刻計時器上的每一個滴答更新毫秒一個無形的文本框..
上文本框的TextBox.TextChanged事件從那裏添加一個功能轉換的毫秒時間...
下一個方法是添加一個定時器和間隔設置爲1毫秒...
更新時間..
下一個方法是添加一個BackgroundWorker並使用它作爲一個定時器來更新時間...
如果您發現任何有用的上述方法...評論,我會後的代碼! :)
這個答案需要一些工作,思維過程是所有的地方,代碼將使其更好。 –
@Ramhound的【答案在這裏(http://stackoverflow.com/a/10541756/1118933)告訴一切,但如果線程與定時更換,這將更好地工作。 – Writwick
使用Timer。在Timer.Tick處理程序中,使用基於DateTime.Now的簡單if/else語句修改標籤的Text屬性。
int hour = DateTime.Now.Hour;
if (hour >= 10 && hour < 17)
//Open 10:00am through 4:59pm
LabelStatus.Text = "Open";
else
//Closed 5:00pm through 9:59am
LabelStatus.Text = "Closed";
您需要詳細瞭解如何使用此代碼。這不符合作者的要求。他希望標誌在下午5點開放,而不是下午4:59開放,這是有區別的。 –
下面是使用更新標籤的單獨線程執行此操作的方法。這樣,線程將在後臺運行,並不斷檢查標籤是否處於正確的狀態。確保的情況下,無論是使用Thread.Abort的()和追趕,我相信總是拋出,或通過添加一個標誌作爲while循環的條件外,並降低旗關閉你停止線程的形式停止線。
只要沒有其他對象訪問的標籤,不應該有任何需要鎖的線程的任何部分。
public delegate void DelLabelText(Label l, string s);
public DelLabelText delLabelText;
public Form1()
{
InitializeComponent();
delLabelText = Label_Text;
// Initialize text
lblOpenStatus.Text = "Closed";
// Create and start thread
Thread threadUpdateLabel = new Thread(UpdateLabel_Threaded);
threadUpdateLabel.Start();
}
// Thread function that constantly checks if the text is correct
public void UpdateLabel_Threaded()
{
while (true)
{
Thread.Sleep(5000);
// 24 hour clock so 17 means 5
if ((DateTime.Now.Hour >= 10 && DateTime.Now.Hour < 17) || (DateTime.Now.Hour == 17 && DateTime.Now.Minute == 0 && DateTime.Now.Second == 0))
{
if (lblOpenStatus.Text.ToLower() == "closed")
{
Label_Text(lblOpenStatus, "Open");
}
}
else
{
if (lblOpenStatus.Text.ToLower() == "open")
{
Label_Text(lblOpenStatus, "Closed");
}
}
}
}
// Set the text using invoke, because text is changed outside of main thread
public void Label_Text(Label label, string text)
{
if (label.InvokeRequired)
{
label.Invoke(delLabelText, new object[] { label, text });
}
else
{
label.Text = text;
}
}
大量的工作進入了這個答案,但它確實爲處理器提供了時間(真),並且是編程的熊。這裏每1000毫秒運行一個簡單的Timer對象並檢查當前時間就足夠了。 – MrWuf
增加了一個Thread.sleep代碼,但在閱讀您的評論後,我不同意,定時器可能是要走的路。 –
- 1. 基於當前時間更改類屬性
- 2. Label.Text不存在於當前上下文
- 3. 計算基於當前時間
- 4. 按當前時間更改圖片
- 5. 如何用Javascript更改當前時間
- 6. 基於計算的更改時間
- 7. javascript更改背景基於時間
- 8. 基於時間更改圖像
- 9. MYSQL:基於當前時間返回列時間值?
- 10. MBProgressHUD在connectionDidFinishLoading中更改label.text
- 11. Label.Text更改被阻止?
- 12. 獲取基於時區和當前服務時間的時差
- 13. 如何將當前時間更改爲用戶時間
- 14. 基於當前路線改變js.erb?
- 15. SQL更改規則基於時間發生的時間
- 16. 基於當前記錄的更新表
- 17. 當前時間= UTC +/-(UTC +/-當前時間)
- 18. 基於當前日期更改範圍驗證器的值
- 19. SQL查詢 - 基於當前日期的動態月份更改
- 20. 基於當前主題更改控制模板
- 21. 如何更改基於關閉的當前分支的分支?
- 22. 基於當前URL更改css div或正文背景圖像
- 23. 在運行時更新label.text
- 24. 基於背景更改TextBlock前景色
- 25. IPhone得到當前系統的時區從RubyOnRails時間格式基於時間
- 26. 在當前時間修改MySQL列基數
- 27. SQL查詢更新日期時間字段基於當前日期+值
- 28. 基於當前時間從數據庫獲取數據PHP
- 29. 設置HTML <select>選項基於當前時間
- 30. 基於當前時間的Javascript頁面刷新
什麼問題的人? – Adil
嚴,檢查時間,如果它看起來像你想要的,更改label.text屬性。的 –
可能重複[如何顯示更新時間,系統時間使用C#的標籤上?(http://stackoverflow.com/questions/5025840/how-to-display-updated-time-as-system-time-on -a-標籤使用-C) –