C# 如何获取控件在窗体上的位置?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

当控件可能在其他控件(如面板)中时,是否有任何方法检索控件在窗体中的位置?

控件的“左”和“顶”属性只给出它在其父控件中的位置,但是如果我的控件位于五个嵌套面板中,而我需要它在窗体上的位置,怎么办?

快速示例:

按钮btnA位于面板pnlB内的坐标(10,10)上。

面板pnlB位于表格frmC内的坐标(15,15)上。

我想要btnA在frmC上的位置,是(25,25)。

我能知道这个位置吗?

提问于
用户回答回答于

我通常PointToScreenPointToClient:

Point locationOnForm = control.FindForm().PointToClient(
    control.Parent.PointToScreen(control.Location));
用户回答回答于

你可以使用这些控件。PointToScreen方法获取相对于屏幕的绝对位置。

你可以做表格PointToScreen方法,并使用基本数学,得到控件的位置。

扫码关注云+社区

领取腾讯云代金券