Путаница с обновлением формы C #

#c# #winforms #refresh

#c# #winforms #обновить

Вопрос:

Пожалуйста, взгляните на этот файл Stopwatch.cs.

В нем нет вызова функции обновления формы. Однако два элемента управления Label, которые отображают прошедшее время, обновляются каждую секунду.

Тем не менее, при вызове « resetButton_Click() » отображение прошедшего времени не обновляется.

  • Почему другое поведение?
  • Как устранить проблему и обновить отображение при нажатии кнопки сброса? (Я попробовал решение из здесь, но это не сработало)

Ответ №1:

Вы только устанавливаете значение переменных в resetButton_Click() методе, но не обновляете значения для самих меток. Добавьте это в конец resetButton_Click метода, и он будет работать так, как ожидалось:

 _totalElapsedTimeDisplay.Text = _totalElapsedTime.ToString();
_currentElapsedTimeDisplay.Text = _currentElapsedTime.ToString();
  

Кроме того, нет необходимости вызывать какой-либо метод обновления формы, если вы задаете свойство Text элемента управления Label. Winforms заботится о «обновлении» элементов управления для отображения новых значений без вашего вмешательства, поэтому первый случай работает так, как ожидалось.