@goldolov_na

Как сделать таймер в Windows Forms?

Нужно сделать,чтобы можно было ставить на 5 минут таймер и это все отображалось в label(например так: 4:58)и с каждой секундой из этого текущего времени минус 1
Есть код:
int i;
        private void Button1_Click(object sender, EventArgs e)
        {
            i = 45;
            label1.Text = i.ToString();
            timer1.Interval = 1000;
            timer1.Enabled = true;
            timer1.Start();
        }

        private void Timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = (--i).ToString();
            if (i < 0)
                timer1.Stop();
        }
  • Вопрос задан
  • 5454 просмотра
Решения вопроса 2
@goldolov_na Автор вопроса
int i;
        int tk;
        string c;
        private void Button1_Click(object sender, EventArgs e)
        {
            i = 300;
            c ="5:00";
            
            label1.Text = c;
            timer1.Interval = 1000;
            timer1.Enabled = true;
            timer1.Start();
        }

        private void Timer1_Tick(object sender, EventArgs e)
        {
            
            tk = --i;
            TimeSpan span = TimeSpan.FromMinutes(tk);
            string label = span.ToString(@"hh\:mm");
            label1.Text = label.ToString();
            if (i < 0)
                timer1.Stop();
        }
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
1. Берем текущее время и прибавляем к нему 5 минут и сохраняем в переменную.
2. Включаем таймер с интервалом в 1/2 секунды, чтобы уменьшить лаг.
3. При каждом срабатывании таймера, берем текущее время и вычитаем его из сохраненной переменной. Получившееся значение типа TimeSpan выводим в label с нужным форматированием.
4. Если текущее время больше сохраненного в переменной вырубаем таймер, так как достигли результата.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы