我尝试在这个网站上搜索显示日期和时间的方法。但是这里的所有示例仅显示静态日期和时间。有没有办法显示正在运行的日期和时间,或者我应该说每秒递增一次?它是否涉及每秒更新时间?
5 回答
使用计时器对象,并在刻度事件中在 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();
}
您可以在表单中添加计时器。将其设置为每秒触发一次。在计时器的事件处理程序中,使用当前时间更新文本框。
你的第二个选择是对的。
这完全是关于使用计时器并使用当前时间更新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 命名空间中的计时器,但在这种情况下,您应该通过调用调用方法http://msdn.microsoft.com/en-us/library/ms171728.aspx以线程安全的方式更新控件。如果您的应用是网络应用,请改用 javascript