2

我想实现一个自定义滚动条,但希望它像标准滚动条一样工作。因此,我需要检测鼠标按钮是否按住了栏末端的向上或向下箭头,以便用户可以使用栏末端滚动。

如何检测到按钮被按住?

MouseDown 仅在第一次按下按钮时触发一次。MouseUp 将在按钮被释放时触发,但有没有比在 MouseDown 和 MouseUp 之间定期触发某种计时器更好的方法?

4

1 回答 1

2

我认为您不会比使用 a 做得更好Timer(尽管我可能会感到惊讶)。

我以前用过Timers 来达到同样的目的,它们的工作原理通常是这样的:

  • Timer Start()s,当按钮按下时使用~ ms Interval200此时鼠标也是Captured。
  • 每个Tick效果一个卷轴。(第一个Tick也将间隔更改为〜25毫秒)
  • 当鼠标出现时,Timer.Stop()s。

Interval200到更改25意味着他们必须按住鼠标一段时间,但一旦他们这样做,滚动动作会更快/更顺畅地发生。

被“按住”的按钮实际上不是一个事件,它更多的是一种状态(即它不会在特定的时间点发生)。

于 2009-03-26T15:56:35.497 回答