标签文本每秒刷新一次

use*_*761 1 .net c# datetime

我正在尝试每秒刷新一次标签,以便倒计时更新,遇到一些麻烦.对于noob问题,我对C#道歉非常陌生.

private void Form1_Load(object sender, EventArgs e)
{
    bool ephCD = true;
    int ephHours = (DateTime.Today.AddDays(1) - DateTime.Now).Hours;
    int ephMinu = (DateTime.Today.AddDays(1) - DateTime.Now).Minutes;
    int ephSecs = (DateTime.Today.AddDays(1) - DateTime.Now).Seconds;

    label1.Text = ephHours.ToString() + ":" + ephMinu.ToString() + ":" + ephSecs.ToString();

    while (ephCD == true)
    {
        label1.Refresh();
    }
}
Run Code Online (Sandbox Code Playgroud)

启动时,程序甚至不会出现.

为什么程序没有出现?

Bra*_*NET 7

你正在进行无限循环Form_Load.这意味着表单永远不会完成加载,并且您的程序将被卡住.

你的刷新循环需要在一个单独的线程上,或理想情况下抛出循环并使用Timer而不是在无限循环上旋转锁定CPU.

Timer myTimer = new Timer(1000);
void Form1_Load()
{
     myTimer.Elapsed += UpdateLabel;
     myTimer.Start();
}

private void UpdateLabel(object sender, ElapsedEventArgs e)
{
    //Update label here
}
Run Code Online (Sandbox Code Playgroud)