标签如何不时更新

时间:2018-09-17 08:10:32

标签: c# .net datetime label timespan

我捕获了启动时间和当前时间,但是我的问题是,如果启动时间已经过去,则标签不会更改。我需要重新打开Windows窗体(c#),以便标签会更改。

代码:

_hh = DateTime.Now.Hour;
_min = DateTime.Now.Minute;
_yy = DateTime.Now.Year;
_mm = DateTime.Now.Month;            
_dd = DateTime.Now.Day;

DateTime _original_launch_time = new DateTime(_yy, _mm, _dd, 13, 0, 0);//this is the default time for launch
DateTime time = new DateTime(_yy, _mm, _dd, _hh, _min, 0); //this gets the current time

if (_original_launch_time > time)
{
    label1.Text = "your not late";
}
else
{
    label1.Text = "your late";
}

1 个答案:

答案 0 :(得分:0)

创建一个计时器以在一定时间间隔内执行代码,并在计时器在后台线程上运行时调用要在主线程执行的代码以正确更新表单。

using System.Windows.Forms;

Timer t = new Timer();
t.Interval = 1000;
t.Tick += new EventHandler(timer_Tick);
t.Start();

void timer_Tick(object sender, EventArgs e)
{
      Invoke((MethodInvoker)(() => {

          // your code here

      }));
}

在关闭表单时不要忘记调用t.Stop();,就像您没有这样做一样,它会一直运行直到关闭整个应用程序。