无法弄清楚如何使用C#执行计时器

时间:2018-07-05 18:19:53

标签: c#

快速提问。我正在做一个项目,当我打开表单时它会启动一个计时器。

当计时器在1分钟后为1:00时,它会像应该发生的那样进入0:59。

但是当我将计时器设置为1分钟后的2:00时,它会变为1:59。我将计时器间隔设置得更快一些,只是看它会是什么样子。而当到达1:00而不是变为0:59时,则变为1:59。我知道我的代码是错误的,但我无法更正。

public partial class Form9 : Form
{
    private int quick = 1800;

    public Form9()
    {
        InitializeComponent();
    }

    private void Form9_Load(object sender, EventArgs e)
    {
        timer1 = new System.Windows.Forms.Timer();
        timer1.Interval = 60000;
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Enabled = true;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        quick--;
        label1.Text = quick / 900 + ":" + ((quick % 60) >= 10 ? (quick % 60).ToString() : "0" + (quick % 60));
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以改用内置类型TimeSpan

private TimeSpan quick = TimeSpan.FromHours(2); // 2 hours

private void timer1_Tick(object sender, EventArgs e)
{
    quick -= TimeSpan.FromMinutes(1); // subtract 1 minute

    label1.Text = string.Format("{0:h\\:mm}", quick);
}

How to format Timespan