我有一个应用程序,它使用ShowDialog方法打开一个模态窗体。 显示此表单后,即使光标位于表单外,我也希望捕获鼠标移动。 如何捕捉鼠标移动?我在Capture属性中看到了一些内容,但我无法使其工作。
[编辑]
如果鼠标移到表单之外,我希望收到通知。
答案 0 :(得分:2)
您可以使用静态属性Control.MousePosition。
答案 1 :(得分:2)
Capture
属性是正确的方法,但存在一些限制。
SetCapture
都会重置。我认为这也适用于.NET。请参阅Capture
属性的remarks section。
当捕获鼠标时,您将收到通常的事件,但具有更宽的鼠标坐标范围(例如,如果鼠标留在捕获控件中,则为负X位置)
鼠标捕获是脆弱的,因为它具有全球性。检查是否有其他方法来处理某些事件。在您的情况下,MouseLeave
或MouseEnter
事件可能就足够了。
答案 2 :(得分:0)
您可以使用Cursor.Position属性读取光标的位置,请参阅Cursor.Position