首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >鼠标移动捕捉

鼠标移动捕捉
EN

Stack Overflow用户
提问于 2009-09-15 10:28:55
回答 3查看 3.7K关注 0票数 1

我有一个用ShowDialog方法打开模式表单的应用程序。显示此窗体后,我希望捕获鼠标的移动,即使光标位于窗体之外。如何捕捉鼠标的移动?我看到了Capture属性的一些东西,但我无法使其工作。

编辑

如果鼠标移出窗体,我希望得到通知。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-15 10:38:54

Capture属性是正确的方法,但有一些限制。

  • 只有前台窗口可以捕获鼠标

鼠标捕获功能可以被系统的其他部分禁用

  • Win32 API function SetCapture每次发生鼠标释放事件时都会被重置。我假设这也适用于.NET。

请参见Capture属性的remarks section

当鼠标被捕获时,您将收到通常的事件,但具有更宽的鼠标坐标范围(例如,如果鼠标位于捕获控件的左侧,则为负X位置)

鼠标捕捉是脆弱的,因为它是全球性的。检查是否有其他方法来处理某些事件。也许在您的情况下,MouseLeaveMouseEnter事件就足够了。

票数 2
EN

Stack Overflow用户

发布于 2009-09-15 10:35:23

您可以只使用静态属性Control.MousePosition

票数 2
EN

Stack Overflow用户

发布于 2009-09-15 10:32:50

您可以使用Cursor.Position属性读取游标的位置,请参见Cursor.Position

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1426327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档