如何用当前时间不断更新标签?

时间:2016-04-27 17:16:15

标签: c# datetime clock hour

我使用了以下代码行

int pp = DateTime.Now.Hour; 

没关系。我写了

label1.text=pp.tostring();

用于验证并且有效,但如果我在label1中的19:59(例如)打开我的表单,则显示19,一分钟后,当时钟为08:00时,值标签1中的内容未更改,但仍显示为19,而不是20

之后,如果我关闭表单并重新打开它,label1中的数字为20

如何在表单运行时实时修改datetime.now.hour中的值? 谢谢

3 个答案:

答案 0 :(得分:3)

由于您使用的是“表单”术语,我将假设使用Windows窗体,最简单的方法是添加Timer组件,设置合理的Interval(合理的含义如何在标签更改 ...时间间隔越长,进程占用的CPU越少)及其Tick事件时,您可以承受延迟的最长时间,做你的:

static void MyTimer_Tick(object sender, EventArgs e)
{
  int pp = DateTime.Now.Hour;
  label1.text=pp.tostring();
}

答案 1 :(得分:2)

您需要实施Timer,并使其Elapsed事件更新label1.text。简单地调用DateTime.Now.Hour是不够的,因为它只更新一次。它没有设置循环方法来不断更新。

using System.Timers;

namespace Example {
    static Timer _timer;

    static void Main() {
        _timer = new Timer(1000); // Update every 1 second.
        _timer.Elapsed += UpdateMyLabel;
        _timer.Start();
    }

    static void UpdateMyLabel(object sender, ElapsedEventArgs e) {
        label1.Text = DateTime.Now.Hour;
    }
}

答案 2 :(得分:1)

我会推断出Label类并使用timer tick来更新标签。就像在OOP中一样;)