当控件可能位于其他控件(如面板)内时,是否有任何方法可以检索控件在表单中的位置?
控件的 Left 和 Top 属性仅提供它在父控件中的位置,但如果我的控件位于五个嵌套面板内,并且我需要它在窗体上的位置怎么办?
简单示例:
按钮 btnA 位于面板 pnlB 内的坐标 (10,10) 上。
面板 pnlB 位于窗体 frmC 内的坐标 (15,15) 上。
我想要 btnA 在 frmC 上的位置,即 (25,25)。
我能得到这个位置吗?
最佳答案
我通常结合使用 PointToScreen
和 PointToClient
:
Point locationOnForm = control.FindForm().PointToClient(
control.Parent.PointToScreen(control.Location));
关于C# 获取控件在窗体上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478022/