【问题标题】:Find Coordinates for point on screen?在屏幕上查找点的坐标?
【发布时间】:2009-09-17 11:32:20
【问题描述】:

问题是我有一些以表格形式显示的图形,例如矩形,我想在点越过这些字段时进行捕捉。所以我想我试图找到这些矩形的坐标,但由于它们是形式中的坐标,它与鼠标位置的坐标不匹配。

所以我想知道有没有办法在屏幕上找到 Point 在屏幕上而不是在表单或控制器中的坐标?

【问题讨论】:

  • 我不明白你想做什么,你能更形象地解释一下吗?
  • 发布一些显示您当前使用的代码将帮助我们回答您的问题:-)
  • 尝试重写帖子,因为我不太明白 Ahmed。

标签: c# graphics coordinates point


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 太棒了!现在我可以使用 Point scrPos = menuItemForm.PointToScreen(mSize.Location);定位矩形 mSize 所在的点,并通过检测此矩形的鼠标悬停在那里。
  • 可能不会一直有效。检查这个重复的帖子:stackoverflow.com/questions/4768677/…
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    我似乎记得实际上有一个功能可以为您执行此操作,但我已经有一段时间没有涉足自定义 GUI 控件了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多