我想实现一个自定义滚动条,但希望它像标准滚动条一样工作。因此,我需要检测鼠标按钮是否按住了栏末端的向上或向下箭头,以便用户可以使用栏末端滚动。
如何检测到按钮被按住?
MouseDown 仅在第一次按下按钮时触发一次。MouseUp 将在按钮被释放时触发,但有没有比在 MouseDown 和 MouseUp 之间定期触发某种计时器更好的方法?
我想实现一个自定义滚动条,但希望它像标准滚动条一样工作。因此,我需要检测鼠标按钮是否按住了栏末端的向上或向下箭头,以便用户可以使用栏末端滚动。
如何检测到按钮被按住?
MouseDown 仅在第一次按下按钮时触发一次。MouseUp 将在按钮被释放时触发,但有没有比在 MouseDown 和 MouseUp 之间定期触发某种计时器更好的方法?
我认为您不会比使用 a 做得更好Timer
(尽管我可能会感到惊讶)。
我以前用过Timer
s 来达到同样的目的,它们的工作原理通常是这样的:
Timer
Start()
s,当按钮按下时使用~ ms Interval
。200
此时鼠标也是Capture
d。Tick
效果一个卷轴。(第一个Tick
也将间隔更改为〜25
毫秒)Timer.Stop()
s。Interval
从200
到更改25
意味着他们必须按住鼠标一段时间,但一旦他们这样做,滚动动作会更快/更顺畅地发生。
被“按住”的按钮实际上不是一个事件,它更多的是一种状态(即它不会在特定的时间点发生)。