在屏幕上查找点的坐标?

问题是我有一些图形显示在一个forms,例如矩形,我想捕获当点到达thees字段。 因此,我试图找到这些矩形的corrrdinates,但由于它是forms的坐标,它与鼠标位置的坐标不匹配。

所以我想知道有没有办法在屏幕上找到一个Point在屏幕上有什么coord,而不是在窗体或控制器中?

每个控件都有PointToFoo方法进行转换。 请注意,您应该从您想要的位置的对象的父级调用此方法:

Point scrPos = this.PointToScreen(panel1.Location); 

或者,您可以通过以下方式获取面板的屏幕坐标:

 Point scrPos = panel1.PointToScreen(new Point(0,0)); 

请注意,由于面板的边框大小,上述两个示例可能会产生不同的结果。

如果通过在表单中​​调用this.CreateGraphics()来使用表单的图形对象,则绘制矩形时使用的坐标应与窗体上的click事件返回的坐标完全相同。

你知道指针的坐标是什么吗? 您可以通过调用GetWindowRect()获取窗口的坐标,并从鼠标光标中减去顶部/左侧以获取客户端坐标。

我似乎记得有一个函数可以帮到你,但是自从我涉足自定义GUI控件以来已经有一段时间了。