我使用了以下代码行
int pp = DateTime.Now.Hour;
没关系。我写了
label1.text=pp.tostring();
用于验证并且有效,但如果我在label1中的19:59
(例如)打开我的表单,则显示19
,一分钟后,当时钟为08:00
时,值标签1中的内容未更改,但仍显示为19
,而不是20
。
之后,如果我关闭表单并重新打开它,label1中的数字为20
。
如何在表单运行时实时修改datetime.now.hour中的值? 谢谢
答案 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中一样;)