使用或不使用ReleaseMouseCapture()?

时间:2012-08-27 19:15:59

标签: c# wpf

使用在代码中工作的方法可能没问题但是不确切知道场景背后的内容并不是那么好的感觉。费用差距或工作不完整。

我碰巧找到了ReleaseMouseCapture()并且已经在方法(OnMouseUp事件中使用过),因为看起来很有必要但我注意到使用或不使用此方法至少不会影响我的应用程序的可视部分

你能告诉我什么时候应该使用它吗?

感谢。

3 个答案:

答案 0 :(得分:2)

MSDN says:

When an object captures the mouse, all mouse related events are treated as if the object with mouse capture perform the event, even if the mouse pointer is over another object.

根据您正在做的事情,它可能会或可能没有意义。我们需要更多信息。但归结起来的是,捕获它的对象将监听并接收来自鼠标的所有事件。这样您就可以更好地组织鼠标逻辑。例如,在屏幕上拖动一个对象将是完美的,因为对象本身将获得所有鼠标事件。

但是,如果您只使用ReleaseCaptureMouse,那么不确定为什么要使用它。你在任何地方使用CaptureMouse吗?

答案 1 :(得分:1)

如果您拨打了ReleaseMouseCapture,则只需拨打CaptureMouse,因此在您的情况下听起来并不像您需要它。

捕获鼠标意味着即使鼠标移出控件的边界,控件也会接收鼠标消息。它用于拖拉和放大器之类的东西。跌落控制之外的跌落。

答案 2 :(得分:1)

每当我编写捕获鼠标的代码时都会使用它,并且在我完成时需要释放鼠标捕获。

一个典型的例子是拖放控件。当我开始拖动操作时,我有时希望应用程序或控件捕获鼠标,因此无论鼠标的实际位置如何,使用鼠标进行的任何移动都将发送到特定的应用程序或控件。当用户释放鼠标按钮时,我需要释放鼠标捕获,以便应用程序/控件停止接收其不感兴趣的鼠标事件。