C# WinForm屏幕外防护

C# WinForm屏幕外防护,c#,winforms,C#,Winforms,跟着我 我能够防止winform在用户进行拖放时脱离屏幕, 但我注意到,当我移动窗体时,鼠标光标似乎运行得很快,比winForm更快,事实上,当拖放完成时,鼠标光标出现在窗体之外的位置。 有什么方法可以防止这种情况吗?将告诉您如何移动光标 然而,根据你之前提到的帖子,看起来你在windows上玩了很多 除非你要处理的是一台在公共场合被人使用的电脑,而这些人可能会走上前去,把它给下一个人弄得一团糟,否则你可能会觉得这些东西让用户感到沮丧,而不是帮助他们 一个非常新手的用户可能会意外地丢失你的应用程

跟着我

我能够防止winform在用户进行拖放时脱离屏幕, 但我注意到,当我移动窗体时,鼠标光标似乎运行得很快,比winForm更快,事实上,当拖放完成时,鼠标光标出现在窗体之外的位置。 有什么方法可以防止这种情况吗?

将告诉您如何移动光标

然而,根据你之前提到的帖子,看起来你在windows上玩了很多

除非你要处理的是一台在公共场合被人使用的电脑,而这些人可能会走上前去,把它给下一个人弄得一团糟,否则你可能会觉得这些东西让用户感到沮丧,而不是帮助他们

一个非常新手的用户可能会意外地丢失你的应用程序窗口,但他们最终必须弄清楚自己是否是一名每天都要使用电脑的员工

同时,你会让任何习惯于使用电脑的人感到沮丧,甚至发疯

此外,您正在为自己做更多的工作,而没有获得任何额外的功能


我不确定你想做什么,当然我可能错了,但通常情况下,不玩这些东西更容易,也更好

快?我不会这么说;只是当窗体碰到不可见的边框时,您可以将光标从窗体上移开,因为与窗体不同,光标的移动不受限制。这不是你们所观察到的吗?不是。我的意思是这种情况发生在winform也在桌面客户端区域的时候。请注意,我说的是“光标位于窗体以外的位置”,而不是桌面以外的区域。当拖放完成后,我将光标放在表单区域内的同一原点上,但它不是。因此,在移动表单时,它确实会移动,因为它没有碰到边框,但光标仍然相对于表单移动?这应该会发生。您是否有任何形式的干扰代码?如果创建一个新的干净项目并粘贴到表单中,您是否看到这种行为?不,我在任何事件中都没有任何干扰。您可以看到我的问题,使用您发布给我的相同代码,然后尝试将表单从一个位置移动到另一个位置,您将看到鼠标光标不在表单上,而是在表单之外。(当你快速移动表单时会发生这种情况)。不,我不能复制这种情况。除非您将窗体撞到屏幕边框上,否则光标不会相对于窗体移动。我已经做了一些其他测试。出现我的问题是因为m.LParam小于零,但当我快速移动表单时,它似乎不会离开屏幕(这将导致一个负整数)。@bit
LParam
是指针,而不是值。顺便说一句,我已经更新了问题中的代码来修复一个不相关的bug,但是看看它是否也神奇地修复了你的行为。不,这个问题仍然存在。但也许这只是我的眼睛无法实时看到的东西。正如您所说,当表单从屏幕上拖出时(显然)会出现问题。当我尝试移动表单(快速方式)时,我想不要离开屏幕,但在不知不觉中我只是去了那里。好的,请考虑关闭这个帖子,再次感谢你的新代码…抱歉……只有一件事:当屏幕出现时,是否有可能阻止鼠标移动事件?这样我就可以解决上述问题。