C# 鼠标移动时更改光标位置

C# 鼠标移动时更改光标位置,c#,winforms,C#,Winforms,我需要在表单中添加鼠标反转。我采用了这种方法: private void OnMouseMove(object sender, MouseEventArgs e) { var delta = new Point(e.X - _prevCursorPos, e.Y - _prevCursorPos); if (_invertX) delta.X = -delta.X; if (_invertY) delta.Y = -delta.Y;

我需要在表单中添加鼠标反转。我采用了这种方法:

private void OnMouseMove(object sender, MouseEventArgs e)
{
    var delta = new Point(e.X - _prevCursorPos, e.Y - _prevCursorPos);
    if (_invertX)
        delta.X = -delta.X;
    if (_invertY)
        delta.Y = -delta.Y;

    Cursor.Position = new Point(_prevCursorPos.X + delta.X, _prevCursorPos.Y + delta.Y);
    _prevCursorPos = Cursor.Position;
}
但是,在事件代码执行之后,光标位置似乎被重置,因为它保持不变,并且您只能注意到一些不可察觉的抖动。我还尝试在并行线程的一个while循环中设置一个新位置,但如果不删除任何线程,它将非常无响应和闪烁。睡眠调用(我使用了thread.Sleep(1))并获得较高的CPU负载。
有什么解决方案吗?

请帮助我理解为什么需要将鼠标光标移动到正常位置以外的其他位置。为什么你的表单中需要“鼠标反转”?Windows希望根据用户的意愿移动鼠标。你为什么要干预?哦,这很难解释。它不完全是一个表单…我的一个朋友让我写一个小应用程序,在按住某个按钮时反转鼠标移动(为了让游戏摄像机的移动更加熟悉,因为没有这样的设置)。这是一种解决方法(也有全局挂钩),但是嘿,我只需要一个答案。