我无法访问光标的位置(以编程方式移动鼠标)

本文关键字:编程 方式 移动 鼠标 位置 访问 光标 | 更新日期: 2023-09-27 18:05:38

这是我的代码:

    private void MoveCursor(int x, int y)
    {
        // Set the Current cursor, move the cursor's Position,
        // and set its clipping rectangle to the form. 
        System.Windows.Forms.Cursor cursorMouse = new System.Windows.Forms.Cursor(System.Windows.Forms.Cursor.Current.Handle);
        cursorMouse.Position = new System.Drawing.Point(x, y);
        System.Windows.Forms.Cursor.Clip = new System.Drawing.Rectangle(cursorMouse.Position, cursorMouse.Size);
    }

这是我的控制台显示的:

 Error  11  Member 'System.Windows.Forms.Cursor.Position.get' cannot be accessed with an instance reference; qualify it with a type name instead    F:'Win8'Kinect'InterfaceController'celmaibun'KinectToolbox'KinectToolbox'GesturesViewer'MainWindow.xaml.cs  1314    13  NkGesturesViewer
 Error  12  Member 'System.Windows.Forms.Cursor.Position.get' cannot be accessed with an instance reference; qualify it with a type name instead    F:'Win8'Kinect'InterfaceController'celmaibun'KinectToolbox'KinectToolbox'GesturesViewer'MainWindow.xaml.cs  1315    77  NkGesturesViewer

现在,我是c#的初学者,我更习惯java和android。一个朋友告诉我,这与实例有关。但我不知道该怎么做。

我无法访问光标的位置(以编程方式移动鼠标)

你可能已经找到了你的答案,或者找到了一个解决办法,但是因为我有同样的问题,我想我应该把我发现的贴出来。

当我添加system . windows . forms . datavizalization . charts的引用时,错误弹出。游标处理该引用的方式似乎与通常不同,并且覆盖了典型的cursor . position .

在我的例子中,它就像替换"Cursor "一样简单。

我建议你使用这个代码

var pc = new PointConverter();
var pt = new Point();
pt = (Point)pc.ConvertFromString(string.Format("{0}, {1}",x,y));
cursorMouse.Position = pt;

链接:http://msdn.microsoft.com/en-us/library/system.drawing.pointconverter.aspx

我发现了问题所在,Kinect并没有将屏幕参数从0发送到显示宽度,并且它的主体左侧有一个-,右侧有一个+,所以我必须编写一个函数来计算鼠标移动到的正确点。