0

Есть у меня игра "Найди пару". Добавил таймер на форму и хочу выводить это время в label. Типо: "00:01", "00:02", ... "01:01", "01:02". Только начинаю работать с Windows Forms.

 private void TimeTick(object sender, EventArgs e)
        {
            string time;
            time = timer2.ToString();
            time_text.Text = time;
        }

Такой код выводит [System... че то там] Подскажите, что делаю не так? введите сюда описание изображения

NeoShima
  • 143
  • 1
    Что такое timer2? Какую задачу вы решаете? – aepot May 08 '21 at 09:06
  • timer2 - это элемент timer, который добавлен на форму. Создан для того, чтобы считать время, которое игрок провел в игре – NeoShima May 08 '21 at 09:12

1 Answers1

2

Таймер служит для вызова обработчика события с определенным интервалом, он не подходит для измерения времени. Попробуйте Stopwatch в дополнение к таймеру.

private readonly Stopwatch stopwatch = new Stopwatch();

private void button1_click(object sender, EventArgs e) { stopwatch.Start(); // запустить секундомер // stopwatch.Stop(); // остановить секундомер // stopwatch.Restart(); // перезапустить секундомер с нуля // stopwatch.Reset(); // остановить и сбросить }

private void TimeTick(object sender, EventArgs e) { time_text.Text = stopwatch.Elapsed.ToString("mm\:ss"); }

То есть секундомер считает время, а Timer занимается обновлением значения этого времени на экране.


Есть еще вот такое решение для продвинутых разработчиков, там секунды можно хоть вручную без секундомера считать.

aepot
  • 49,560