内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
当控件可能在其他控件(如面板)中时,是否有任何方法检索控件在窗体中的位置?
控件的“左”和“顶”属性只给出它在其父控件中的位置,但是如果我的控件位于五个嵌套面板中,而我需要它在窗体上的位置,怎么办?
快速示例:
按钮btnA位于面板pnlB内的坐标(10,10)上。
面板pnlB位于表格frmC内的坐标(15,15)上。
我想要btnA在frmC上的位置,是(25,25)。
我能知道这个位置吗?
我通常用PointToScreen
和PointToClient
:
Point locationOnForm = control.FindForm().PointToClient( control.Parent.PointToScreen(control.Location));