当控件可能在其他控件(如Panel)中时,有没有办法检索控件在窗体中的位置?
控件的Left和Top属性只给出了它在父控件中的位置,但如果我的控件位于五个嵌套面板中,我需要它在窗体上的位置怎么办?
快速举例:
按钮btnA位于面板pnlB内的坐标(10,10)上.
面板pnlB位于形式frmC内的坐标(15,15)上.
我想要btnA在frmC上的位置,这是(25,25).
我可以获得这个位置吗?
恕我直言,MSDN没有提供Control.PointToScreen(链接)和Control.PointToClient(链接)方法之间的明显区别.
是否有人可以用一些简单的词语解释这些方法之间的区别.特别是我不清楚"客户"的概念.
我理解PointToScreen给定点的实际屏幕坐标(屏幕左上角的[0,0]).
例如,调试我的一些代码
?click.Location
{X = 3 Y = 9}
?shapeSender.PointToClient(click.Location)
{X = -470 Y = -565}
?shapeSender.PointToScreen(click.Location)
{X = 476 Y = 583}
Run Code Online (Sandbox Code Playgroud)
谢谢.