【发布时间】:2013-01-07 06:51:32
【问题描述】:
我从Control 做了类似滚动条的操作。一切都很好,但是当光标离开控制区域时,不再收到OnMouseMove。
当您使用标准 Windows 滚动条时,即使鼠标光标位于控件表面之外,您也可以使用它。
为了避免这种情况,我唯一的想法是从屏幕上获取光标位置,然后计算屏幕上的滚动条位置,并使用计时器或其他东西来更新我的Control。但这听起来非常困难和丑陋。
知道怎么解决吗?
编辑:我的意思是Control 不是UserControl。
编辑2: 它接收鼠标!我在代码中有错误,我在 MouseMove 方法中调用了 MouseDown,但在 MouseDown 中我有 X/Y 约束,如果 X
【问题讨论】:
-
即使解决了,当光标移出
Form的范围时,你也会遇到同样的问题。 -
我认为你的问题是关于焦点。标准滚动条只有在获得焦点时才起作用。
-
@KenKin 通过鼠标捕获(请参阅我的回答),即使它在窗口/窗体之外,您也会得到移动
-
很好。我想说的是,这不仅仅是关于控件,还有表单。
标签: c# winforms mouseevent