我有一个用ShowDialog方法打开模式表单的应用程序。显示此窗体后,我希望捕获鼠标的移动,即使光标位于窗体之外。如何捕捉鼠标的移动?我看到了Capture属性的一些东西,但我无法使其工作。
编辑
如果鼠标移出窗体,我希望得到通知。
发布于 2009-09-15 10:38:54
Capture属性是正确的方法,但有一些限制。
鼠标捕获功能可以被系统的其他部分禁用
SetCapture每次发生鼠标释放事件时都会被重置。我假设这也适用于.NET。请参见Capture属性的remarks section。
当鼠标被捕获时,您将收到通常的事件,但具有更宽的鼠标坐标范围(例如,如果鼠标位于捕获控件的左侧,则为负X位置)
鼠标捕捉是脆弱的,因为它是全球性的。检查是否有其他方法来处理某些事件。也许在您的情况下,MouseLeave或MouseEnter事件就足够了。
发布于 2009-09-15 10:35:23
您可以只使用静态属性Control.MousePosition。
发布于 2009-09-15 10:32:50
您可以使用Cursor.Position属性读取游标的位置,请参见Cursor.Position
https://stackoverflow.com/questions/1426327
复制相似问题