我有一个应用程序,用ShowDialog方法打开一个模态窗体。 一旦显示此表单,即使光标在表单之外,我也想捕获鼠标移动。 如何捕捉鼠标移动?我看到了一些有关Capture属性的内容,但我无法设法使其工作。鼠标移动捕获
[编辑]
我想如果表单以外的鼠标移动通知。
我有一个应用程序,用ShowDialog方法打开一个模态窗体。 一旦显示此表单,即使光标在表单之外,我也想捕获鼠标移动。 如何捕捉鼠标移动?我看到了一些有关Capture属性的内容,但我无法设法使其工作。鼠标移动捕获
[编辑]
我想如果表单以外的鼠标移动通知。
Capture
属性是正确的方法,但有一些限制。只有
SetCapture
的其他部分被禁止被重置每次“鼠标”事件occours。我认为这也适用于.NET。查看Capture
的remarks section属性。
当鼠标被捕获时,你会收到通常的事件,但具有更宽的鼠标坐标范围(例如负的X位置,如果鼠标左摄像控制的)
鼠标捕获是脆弱,因为它是全球性的。检查是否有其他方式来处理某些事件。您的情况下,MouseLeave
或MouseEnter
事件可能已足够。
可以读取光标的位置,使用Cursor.Position物业,看到Cursor.Position
您可以只使用静态属性Control.MousePosition。
只有当光标悬停在某个应用程序表单上时才会执行捕获,但这对我来说可以。 我在Load事件后设置了Capture。 – 2009-09-15 10:57:30