问题是我有一些图形显示在一个形式,例如矩形,我想捕获当点到达thees字段。因此,我试图找到这些矩形的符号,但由于它是形式的坐标,它与鼠标位置的坐标不匹配。
所以我想知道有没有办法在屏幕上找到一个Point在屏幕上有什么坐标,而不是在窗体或控制器中?
答案 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控件以来已经有一段时间了。