我想使用C#在标签上显示当前时间,但随着系统时间的变化,时间会不断变化。我怎么能这样做?
答案 0 :(得分:12)
向窗体中添加一个名为Timer1的新Timer控件,将间隔设置为1000(ms),然后双击Timer控件编辑Timer1_Tick的代码隐藏并添加以下代码:
this.label1.Text = DateTime.Now.ToString();
答案 1 :(得分:8)
添加一个Timer
控件,设置为每秒触发一次(1000毫秒)。在该计时器的Tick
event中,您可以使用当前时间更新标签。
您可以使用DateTime.Now
等内容获取当前时间。
答案 2 :(得分:7)
您可以添加计时器控件并指定 1000 毫秒间隔
private void timer1_Tick(object sender, EventArgs e)
{
lblTime.Text = DateTime.Now.ToString("dd-MMM-yyyy hh:mm:ss tt");
}
答案 3 :(得分:6)
请尝试以下代码:
private void timer1_Tick(object sender, EventArgs e)
{
lblTime.Text = DateTime.Now.ToString("hh:mm:ss");
}
答案 4 :(得分:4)
您还必须在代码或属性窗口中将计时器设置为启用。
在代码中,请在表单加载部分中键入以下内容:
myTimer.Enabled = true;
myTimer.Interval = 1000;
之后,请确保您的计时器事件与此类似:
private void myTimer_Tick(object sender, EventArgs e)
{
timeLabel.Text = DateTime.Now.ToString("hh:mm:ss");
}
答案 5 :(得分:0)
由于定时器间隔不准确,您的更新可能处于错误同步状态,并且相对于实际的秒转换将会漂移。在某些活动中,您将落后于过渡期并在时间显示中错过更新
此方法可能会给您一些尊重,而不是轮询高频率以在秒数更改时触发更新。
如果您喜欢稳压器,您可以通过使用要显示的时间戳的毫秒属性调整1000毫秒定时器,将实际第二次转换后100毫秒安全地定位时间更新。
在计时器事件代码中执行以下操作:
//Read time
DateTime time = DateTime.Now;
//Get current ms offset from prefered readout position
int diffms = time.Millisecond-100;
//Set a new timer interval with half the error applied
timer.Interval = 1000 - diffms/2;
//Update your time output here..
然后,在秒转换后100 ms,下一个定时器间隔应该更接近所选点。在转换+ 100ms时,错误将切换+/-及时保持读出位置。
答案 6 :(得分:0)
private int hr, min, sec;
public Form2()
{
InitializeComponent();
hr = DateTime.UtcNow.Hour;
min = DateTime.UtcNow.Minute;
sec = DateTime.UtcNow.Second;
}
//Time_tick click
private void timer1_Tick(object sender, EventArgs e)
{
hr = DateTime.UtcNow.Hour;
hr = hr + 5;
min = DateTime.UtcNow.Minute;
sec = DateTime.UtcNow.Second;
if (hr > 12)
hr -= 12;
if (sec % 2 == 0)
{
label1.Text = +hr + ":" + min + ":" + sec;
}
else
{
label1.Text = hr + ":" + min + ":" + sec;
}
}