Unw*_*ed4 1 c# winforms countdowntimer
我有一个带有简单倒计时器的 Windows 窗体,用于向观众显示赛车比赛还剩多少时间。它适用于显示还剩多少分钟,但我需要它来显示还剩多少分钟和秒。
用户可以决定是否显示时间(作为图片框前面的标签),并且用户可以开始/停止/重置/添加或减去分钟(所有用户输入均以分钟为单位)。
如果有人能指导我如何将剩余时间格式化为 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();
}
Run Code Online (Sandbox Code Playgroud)
您应该使用TimeSpan来描述剩余时间。这将允许您使用自定义格式字符串来格式化时间。IE
timeleft = TimeSpan.FromMinutes(20);
label3.Text = timeLeft.ToString("mm\\:ss");
Run Code Online (Sandbox Code Playgroud)
您还可以创建一个附加的扩展方法,根据剩余时间打印分钟或秒。即如果超过一分钟,则仅显示分钟,否则显示秒。或者如果剩余时间少于 5 分钟但超过 1 分钟,则显示分钟和秒。