C# 表单刷新混乱
C# Form Refresh Confusion
请查看此 Stopwatch.cs 文件。
里面没有表单刷新函数调用。但是,显示经过时间的两个 Label 控件每秒刷新一次。
然而,当调用“resetButton_Click()
”时,经过时间的显示不会刷新。
- 为什么会有不同的行为?
- 点击resetButton时如何解决问题并刷新显示? (我尝试了 here 的解决方案,但没有用)
您只是在 resetButton_Click()
方法中设置变量的值,但不会将值更新到标签本身。将此添加到 resetButton_Click
方法的末尾,它将按预期工作:
_totalElapsedTimeDisplay.Text = _totalElapsedTime.ToString();
_currentElapsedTimeDisplay.Text = _currentElapsedTime.ToString();
此外,如果您设置 Label 控件的文本 属性,则无需调用任何表单刷新方法。 Winforms 负责 "refreshing" 控件以显示新值而不受您的干扰,因此第一种情况按预期工作。
请查看此 Stopwatch.cs 文件。
里面没有表单刷新函数调用。但是,显示经过时间的两个 Label 控件每秒刷新一次。
然而,当调用“resetButton_Click()
”时,经过时间的显示不会刷新。
- 为什么会有不同的行为?
- 点击resetButton时如何解决问题并刷新显示? (我尝试了 here 的解决方案,但没有用)
您只是在 resetButton_Click()
方法中设置变量的值,但不会将值更新到标签本身。将此添加到 resetButton_Click
方法的末尾,它将按预期工作:
_totalElapsedTimeDisplay.Text = _totalElapsedTime.ToString();
_currentElapsedTimeDisplay.Text = _currentElapsedTime.ToString();
此外,如果您设置 Label 控件的文本 属性,则无需调用任何表单刷新方法。 Winforms 负责 "refreshing" 控件以显示新值而不受您的干扰,因此第一种情况按预期工作。