当控件可能位于其他控件(如“面板”)中时,是否有任何方法可以检索表单中的控件位置?
控件的Left和Top属性只给我它在父控件中的位置,但是如果我的控件在五个嵌套面板中,并且我需要它在窗体上的位置怎么办?
快速示例:
按钮btnA位于面板pnlB内部的坐标(10,10)上。 面板pnlB位于表格frmC内的坐标(15,15)上。
我想要btnA在frmC上的位置,即(25,25)。
我可以得到这个位置吗?
我通常结合PointToScreen和PointToClient:
PointToScreen
PointToClient
Point locationOnForm = control.FindForm().PointToClient( control.Parent.PointToScreen(control.Location));