我想实现自定义滚动条,但希望它像标准滚动条一样工作。因此,我需要检测鼠标按钮是否按住条形末端的向上或向下箭头,以便用户可以使用条形末端滚动。
如何检测按钮被按住?
MouseDown仅在首次按下按钮时触发一次。当按钮被释放时,MouseUp会触发,但是有一种比在MouseDown和MouseUp之间定期触发某种定时器更好的方法吗?
答案 0 :(得分:2)
我认为你不会比使用Timer
做得更好(虽然我可能会感到惊讶)。
我之前使用Timer
s用于同一目的,并且它们有效,通常是这样的:
Timer
Start()
,当按钮关闭时使用Interval
〜200
毫秒。此时鼠标也是Capture
d。Tick
都会影响滚动。 (第一个Tick
也将间隔更改为〜25
ms)Timer.Stop()
s。将Interval
从200
更改为25
意味着他们必须将鼠标按住一段时间,但一旦这样做,滚动操作就会更快/更顺利地发生
“持有”按钮确实不是一个事件,它更像是一个状态(即它不会在特定时间点发生)。