我想在表格中而不是在屏幕中获取光标,我知道我需要使用:

        Point ptCursor = Cursor.Position;
        ptCursor = PointToClient(ptCursor);

问题是我在用于不同线程的方法中使用了此方法,并且它给了我此错误消息:
Cross-thread operation not valid: Control 'Form1' accessed from a thread other than the thread it was created on.

为什么我收到此错误消息?
我可以在线程上运行的方法中使用此行吗?
如何在几秒钟内调用在表单线程上运行的方法?

最佳答案

您需要在GUI线程上分派(dispatch)PointToClient操作:

this.Invoke(new Action(() => ptCursor = PointToClient(ptCursor)));

关于c# - 光标形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8489118/

10-11 00:22