[英]Display a running date and time in a textbox in C#
我試着在這個網站上搜索顯示日期和時間的方法。 但是這里的所有示例僅顯示靜態日期和時間。 有沒有辦法顯示正在運行的日期和時間,或者我應該說每秒遞增? 它是否涉及每秒更新時間?
使用計時器對象並在tick事件中顯示winforms使用中文本框中的日期
System.Windows.Forms.Timer tmr = null;
private void StartTimer()
{
tmr = new System.Windows.Forms.Timer();
tmr.Interval = 1000;
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Enabled = true;
}
void tmr_Tick(object sender, EventArgs e)
{
myTextBox.Text = DateTime.Now.ToString();
}
您可以在表單中添加Timer 。 將其設置為每秒觸發一次。 在計時器的事件處理程序中,使用當前時間更新文本框。
你的第二個選擇是正確的。
這都是關於使用計時器和使用當前時間更新TextBox 。
Task中有一個Delay方法,它以毫秒為輸入。 對我來說,時間更新的代碼如下所示,
Using System.Threading.Tasks;
async void TimeUpdater()
{
while (true)
{
TxtTime.Text = DateTime.Now.ToString();
await Task.Delay(1000);
}
}
這將更新UI並等待1 Second
,然后再次迭代,無限次。 也不要忘記使方法async
,因為await operator
。 正如我研究的那樣,這是在UI天氣WinForms或WPF中獲取運行日期和時間的最簡單方法。
使用間隔為1秒的計時器。 如果您的應用程序是winforms,請使用來自windows.forms命名空間的計時器http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx ,它在與gui相同的線程中運行,因此它更新gui是安全的。 您還可以使用來自system.threading命名空間的計時器,但在這種情況下,您應該通過調用invoke方法http://msdn.microsoft.com/en-us/library/ms171728.aspx以線程安全的方式更新控件。 如果您的應用是網絡,請使用javascript代替
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.