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