【发布时间】:2015-09-29 23:50:14
【问题描述】:
我有一个名为isPressed 的布尔值,它在所有键盘和鼠标按钮都处于活动状态时处于活动状态。我想要实现的是当isPressed 布尔值为true 时启动计时器(最好使用秒表类)。虽然isPressed 为真,但请保持计时器继续运行,一旦isPressed 为false,则停止计时器并获得差异。在它停止并再次为真然后再次停止后,将差异添加到上一个计时器。
我尝试使用post 中的代码,但无法正常工作。我尝试做类似的事情:
Stopwatch stopWatch = new Stopwatch();
TimeSpan ts = stopWatch.Elapsed;
if (isPressed)
{
stopWatch.Start();
}
else
{
stopWatch.Stop();
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
lblTime.Text = string.Format("{0}", elapsedTime);
}
lblTime 标签始终为 0。
【问题讨论】:
-
具体来说,显示分配 isPressed 的位置。这就是您要启动/停止计时器的地方。
-
也许您应该将
stopWatch设为全局并只构造一次(当isPressed为真时)。 -
@EricJ。 isPressed 在 KeyDown 和 MouseDown 事件中分配。
-
那是你应该开始/停止你的计时器的地方。 @RobCroll 提出的解决方案似乎是合理的。