Как я могу перезапустить таймер после 10 секунд обратного отсчета?

#c# #winforms

Вопрос:

Мне нужно добавить Timer отображение обратного отсчета от 10. Когда он достигнет 0, ему нужно будет снова начать с 10. Это должно происходить в непрерывном цикле.

Это то, что у меня есть до сих пор:

 InitializeComponent();

        timer1.Interval = 1000;
        timer1.Tick  = myTimer_Tick;
        timer1.Start();

private void myTimer_Tick(object sender, EventArgs e)
    {
        label2.Text = timeLeft.ToString();
        timeLeft -= 1;

        if (timeLeft < 0)
        {
            timer1.Tick  = myTimer_Tick;
        }
    }
 

То, что происходит сейчас, когда оно достигает 0, оно продолжается в минусе, например, -1 -2 -3 и т. Д.
Мне нужно, чтобы это началось снова с 10.

Спасибо

Комментарии:

1. Почему вы повторно подписываетесь на обработчик событий? Это заставит его вызывать обработчик несколько раз.

Ответ №1:

Почему бы просто не установить timeLeft обратный отсчет на десять

 private void myTimer_Tick(object sender, EventArgs e)
{
    label2.Text = timeLeft.ToString();
    timeLeft -= 1;

    if (timeLeft < 0)
    {
        timeLeft = 10;
    }
}
 

Комментарии:

1. Спасибо 🙂 вот так просто 🙂