移动光标 c#(cursor.position/cursor.clip 不工作)

Moving cursor c# (cursor.position/cursor.clip not working)

我目前正在尝试将光标设置在屏幕的某个区域。

我正在使用以下方法:

this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50); 
Cursor.Clip = new Rectangle(this.Location, this.Size);

然而,执行此代码时实际上没有发生任何事情。谁能告诉我这是怎么回事?

你不应该写这行

this.Cursor = new Cursor(Cursor.Current.Handle); //Remove it

在这里设置鼠标光标所在的区域。如果你想 "lock" 鼠标光标在矩形中,这应该是第一行。如果您不想这样做,请评论这一行。

Cursor.Clip = new Rectangle(this.Location, this.Size);

然后就可以把光标放在

的位置

Cursor.Position = new Point(500, 500);

展示它如何工作的小例子。

// After first run uncomment this line and you will see mouse "locking" in your form ===> Cursor.Clip = new Rectangle(this.Location, this.Size);
    for (int i = 0; i < 600; i++)
    {
        //Here you move your cursor.
        //We get current position and shift it by 1.
        Cursor.Position = new Point(Cursor.Position.X - 1, Cursor.Position.Y - 1);
        //Sleep for 100ms
        Thread.Sleep(100);
    }

光标应该只需要设置 cursor.Position 而无需使用 handels。只要您不需要使用全局 handels,这应该始终有效