如何检测winforms控件上按下的鼠标按钮?

时间:2009-03-26 15:53:42

标签: winforms scrollbars

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

如何检测按钮被按住?

MouseDown仅在首次按下按钮时触发一次。当按钮被释放时,MouseUp会触发,但是有一种比在MouseDown和MouseUp之间定期触发某种定时器更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我认为你不会比使用Timer做得更好(虽然我可能会感到惊讶)。

我之前使用Timer s用于同一目的,并且它们有效,通常是这样的:

  • Timer Start(),当按钮关闭时使用Interval200毫秒。此时鼠标也是Capture d。
  • 每个Tick都会影响滚动。 (第一个Tick也将间隔更改为〜25 ms)
  • 当鼠标出现时,Timer.Stop() s。

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

“持有”按钮确实不是一个事件,它更像是一个状态(即它不会在特定时间点发生)。