C# 如何获取控件相对于其他控件的位置

C# 如何获取控件相对于其他控件的位置,c#,.net,position,picturebox,C#,.net,Position,Picturebox,假设我有两个相互重叠的图片框,如下所示 如何获取图片框2相对于picturebox1的位置 提前谢谢。:) 转换为屏幕坐标,然后返回到客户端坐标,如下所示: Rectangle PB2Screen = pictureBox2.RectangleToScreen(pictureBox2.ClientRectangle); Rectangle PB2RelativeToPB1 = pictureBox1.RectangleToClient(PB2Screen);

假设我有两个相互重叠的图片框,如下所示

如何获取图片框2相对于picturebox1的位置


提前谢谢。:)

转换为屏幕坐标,然后返回到客户端坐标,如下所示:

        Rectangle PB2Screen = pictureBox2.RectangleToScreen(pictureBox2.ClientRectangle);
        Rectangle PB2RelativeToPB1 = pictureBox1.RectangleToClient(PB2Screen);
        Console.WriteLine("pictureBox2 Location Relative to pictureBox1: " + PB2RelativeToPB1.Location.ToString());
        Console.WriteLine("PB2RelativeToPB1: " + PB2RelativeToPB1.ToString());

一般来说,这些事情涉及一点数学知识。将“顶部”和“左侧”特性与“高度”和“宽度”结合使用以确定距离。如果您愿意,您可以调用这两个控件,这可能会简化一些计算。我认为使用是正确的选择。-然而,你需要确定两个PBs之间的关系:它们是否都位于表单上并且重叠?然后你需要减去它们的位置。还是第二个在第一个里面?(
pictureBox2.Parent=pictureBox1;
)在这种情况下,您不需要数学运算,因为它的位置已经相对于第一个位置了!