显示分钟和秒的简单倒数计时器 C# - 已经有分钟

Simple countdown timer C# showing Minutes and Seconds - already have minutes

我有一个 Windows 表单,其中包含一个简单的倒计时计时器,可以向观众显示赛车比赛还剩多少时间。它用于显示还剩多少分钟,但我需要它来显示还剩多少分钟和秒。

用户可以决定是否显示时间(作为图片框前面的标签),用户可以start/stop/reset/add或减去分钟(所有用户输入以分钟为单位)。

如果有人能指导我如何格式化剩余时间以显示为 000:00(即 mmm:ss)并以秒为单位倒计时,我将不胜感激。

这是我目前拥有的:

int timeleft = 10;
private void timer1_Tick(object sender, EventArgs e)
{
    if (timeleft > 0)
    {
        timeleft = timeleft - 1;
        label3.Text = timeleft + " Mins";
    }
    else
    {
        timer1.Stop();
        label3.Text = "Time Up";
    }
}

private void button26_Click(object sender, EventArgs e)
{
    timer1.Start();
}

private void button27_Click(object sender, EventArgs e)
{
    timer1.Stop();
}

private void button32_Click(object sender, EventArgs e)
{
    timer1.Stop();
    timeleft = 20;
    label3.Text = timeleft + " Mins";
}

private void button28_Click(object sender, EventArgs e)
{
    timeleft = timeleft + 1;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button30_Click(object sender, EventArgs e)
{
    timeleft = timeleft - 1;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button7_Click(object sender, EventArgs e)
{
    timeleft = timeleft + 10;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button29_Click(object sender, EventArgs e)
{
    label3.BringToFront();
}

您应该使用 TimeSpan to describe the time left. This would allow you to format the time using custom format strings。即

timeleft = TimeSpan.FromMinutes(20);
label3.Text = timeLeft.ToString("mm\:ss");

您还可以创建一个额外的扩展方法,根据剩余时间打印分钟或秒。 IE。如果超过一分钟,则只显示分钟,否则显示秒。或者,如果剩余时间少于 5 分钟但多于 1 分钟,则同时显示分钟和秒数。