在屏幕上查找点的坐标?

时间:2009-09-17 11:32:20

标签: c# graphics coordinates point

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

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

3 个答案:

答案 0 :(得分:7)

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

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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