C# 这个。光标工作不正常?

C# 这个。光标工作不正常?,c#,C#,我正在做一个控制鼠标的项目,在下面的代码中,我有点不知所措 我声明对象所需的名称空间: using System.Windows; using System.Windows.Forms; using System.Drawing; 在这里的代码中: this.Cursor = new Cursor(Cursor.Current.Handle); Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y); Cursor.C

我正在做一个控制鼠标的项目,在下面的代码中,我有点不知所措

我声明对象所需的名称空间:

using System.Windows;
using System.Windows.Forms;
using System.Drawing;
在这里的代码中:

this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
Cursor.Clip = new Rectangle(this.Location, this.Size);
它告诉我,游标不存在于上下文中,而只存在于
this.Cursor
中。同样适用于
this.Loc
this.Size
。有人知道为什么吗?我是否缺少名称空间

编辑:精确代码:

public class MouseMove
{
    [DllImport("user32.dll")] //TODO add block feature on screens that need it
    private static extern bool BlockInput(bool block);

    public static void Main()
    {
        this.Cursor = new Cursor(Cursor.Current.Handle);
        Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
        Cursor.Clip = new Rectangle(this.Location, this.Size);
    }
}
并且是
游标
的静态属性。您不能通过实例访问它们。为了使用静态变量,您需要使用以下语法:
classname.variablename
。在您的情况下,代码应类似于:

static void Main(string[] args)
{
    Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
    Cursor.Clip = new Rectangle(location, size);
}

我认为,你从MSDN中获取了一个例子,但是在这个例子中有一个WiFrm应用程序,该窗体有一个光标-<代码>。 位置行光标是类名,而不是实例

private void MoveCursor()
{
   //here Cursor is a form's property 
   this.Cursor = new Cursor(Cursor.Current.Handle); 
   // here Cursor is a class name, Position is a static variable.
   Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50); 
   // here Cursor is a class name, Clip is a static variable.
   Cursor.Clip = new Rectangle(this.Location, this.Size); 
}
并且是
游标
的静态属性。您不能通过实例访问它们。为了使用静态变量,您需要使用以下语法:
classname.variablename
。在您的情况下,代码应类似于:

static void Main(string[] args)
{
    Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
    Cursor.Clip = new Rectangle(location, size);
}

我认为,你从MSDN中获取了一个例子,但是在这个例子中有一个WiFrm应用程序,该窗体有一个光标-<代码>。 位置行光标是类名,而不是实例

private void MoveCursor()
{
   //here Cursor is a form's property 
   this.Cursor = new Cursor(Cursor.Current.Handle); 
   // here Cursor is a class name, Position is a static variable.
   Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50); 
   // here Cursor is a class name, Clip is a static variable.
   Cursor.Clip = new Rectangle(this.Location, this.Size); 
}

您正在做的是用自身替换系统的光标

我建议这样做:

public static void Main()
{
    Cursor myCursor = new Cursor(Cursor.Current.Handle);
    myCursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
    myCursor.Clip = new Rectangle(this.Location, this.Size);
}

这样就安全了。但即使这样,我也不确定您要完成的是什么…

您正在做的是将系统的光标替换为自身

我建议这样做:

public static void Main()
{
    Cursor myCursor = new Cursor(Cursor.Current.Handle);
    myCursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y);
    myCursor.Clip = new Rectangle(this.Location, this.Size);
}

这样就安全了。但即使这样,我也不确定您试图实现什么…

您能提供编写此代码的方法和类吗?您的类是否有一个名为
Cursor
的字段?您能提供编写此代码的方法和类吗?您的类是否有一个名为
Cursor
的字段?您不能在
Main()中调用
myCursor
因为
myCursor
不是静态的,这只是我正在制作的游戏中的一个教程阶段,它为你操纵光标。我所要做的就是让它移动到我想要的地方。我试试看,thanks@TAYLORBROWN例如我把它改了一点。因为你只想移动它,你不需要永久存在你的游标对象,所以我把它做成了局部的。确保您掌握了声明、实例化、类和对象的基本含义,以帮助您学习。我希望你喜欢你的发现@姆佩莱蒂埃:你开过吗?在我看来,你不能用一个实例来改变静态变量。你不能在<代码>主()/<代码>中调用<代码> MyCurrase<代码>,因为<代码> MyCurss<代码>不是静态的,它只是用于我正在玩的游戏中的一个教程阶段,它为你操纵光标。我所要做的就是让它移动到我想要的地方。我试试看,thanks@TAYLORBROWN例如我把它改了一点。因为你只想移动它,你不需要永久存在你的游标对象,所以我把它做成了局部的。确保您掌握了声明、实例化、类和对象的基本含义,以帮助您学习。我希望你喜欢你的发现@姆佩莱蒂埃:你开过吗?正如我所想的,不能用实例更改静态变量。