Секундомер. Остановить - продолжить. Переписал через Stopwatch()

Рейтинг: 0Ответов: 0Опубликовано: 18.04.2023

Хочу сделать секундомер: введите сюда описание изображения

Когда нажимаю на кнопку "Stop" останавливается отображение отсчета времени, но отсчет времени на самом деле не останавливается.

Что можно сделать? Вот код:

    DateTime date;
    Timer timer=new Timer();

    private void buttonStart_Click(object sender, EventArgs e)
    {            
            date = DateTime.Now;
            timer.Interval = 10;
            timer.Tick += new EventHandler(tickTimer);
            timer.Start();            
    }

    private void buttonStop_Click(object sender, EventArgs e)
    {
        timer.Stop();
    }

    private void buttonContinue_Click(object sender, EventArgs e)
    {
        timer.Start();
    }

    private void tickTimer(object sender, EventArgs e)
    {
        long tick = DateTime.Now.Ticks - date.Ticks;
        DateTime stopWatch = new DateTime();

        stopWatch = stopWatch.AddTicks(tick);
        labelStopWatch.Text = String.Format("{0:HH:mm:ss}", stopWatch);
    }

Переписал код через Stopwatch():

    private readonly Stopwatch stopwatch = new Stopwatch();

    private void buttonStart_Click(object sender, EventArgs e)
    {
        stopwatch.Start();
    }
    private void buttonStop_Click(object sender, EventArgs e)
    {
        stopwatch.Stop();
    }

    private void buttonContinue_Click(object sender, EventArgs e)
    {
        stopwatch.Start();
    }

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

Где и как запустить TimeTick()?

Ответы

Ответов пока нет.