1

这是我的代码:

    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。一位朋友告诉我,这与实例有关。但我不知道该怎么做。

4

3 回答 3

8

您可能已经找到了答案或找到了解决方法,但由于我遇到了同样的问题,我想我会发布我发现的内容。

当我添加对 System.Windows.Forms.DataVisualization.Charting 的引用时,我弹出了错误。光标使用该引用的方式似乎与通常不同,并覆盖了典型的 Cursor.Position。

就我而言,就像用“MousePosition”替换“Cursor.Position”一样简单。

于 2013-08-30T21:27:54.520 回答
1

我建议你这个代码

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

于 2013-03-25T16:28:47.260 回答
0

我发现问题出在哪里,Kinect 没有将屏幕的参数从 0 发送到显示宽度,而且它在身体的左侧还有一个 - 和右侧的 +,所以我不得不做一个函数计算将鼠标移动到的核心点。

于 2013-09-02T07:01:59.870 回答