一尘不染

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

c#

当控件可能位于其他控件(如“面板”)中时,是否有任何方法可以检索表单中的控件位置?

控件的Left和Top属性只给我它在父控件中的位置,但是如果我的控件在五个嵌套面板中,并且我需要它在窗体上的位置怎么办?

快速示例:

按钮btnA位于面板pnlB内部的坐标(10,10)上。
面板pnlB位于表格frmC内的坐标(15,15)上。

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

我可以得到这个位置吗?


阅读 1798

收藏
2020-05-19

共1个答案

一尘不染

我通常结合PointToScreenPointToClient

Point locationOnForm = control.FindForm().PointToClient(
    control.Parent.PointToScreen(control.Location));
2020-05-19