我在Visual Studio 2010中有一个GUI,它有几个PictureBoxes,LineShapes / Rectangles和Labels / TextBoxes。 LineShapes / Rectangles需要位于PictureBoxes的前面,而Labels / TextBox则需要位于LineShapes / Rectangles的前面。
几个月来,当我在表单的Load事件处理程序中按所需顺序调用BringToFront()方法时,我的GUI工作正常。我首先调用了ShapeContainer的BringToFront()方法,然后为所有标签/文本框调用了BringToFront()方法。
突然之间,我的PictureBoxes开始出现在我的LineShapes / Rectangles前面。将我的最新代码与我上一个工作标记进行比较表明,这些对象没有任何变化。我尝试在我的表单的Load事件处理程序中为PictureBoxes调用SendToBack()方法,但它没有效果。
有人可以解释为什么这种行为会自发地改变我,以及我应该做些什么来确保正确显示我的PictureBoxes,LineShapes / Rectangles和Labels / TextBoxes?
答案 0 :(得分:0)
如果我在Form的Paint事件处理程序中调用我的所有PictureBoxes SendToBack方法,我似乎再次得到了我想要的行为。
奇怪的是,我无法为那里的所有其他对象调用BringToFront方法,或者我的LineShapes / Rectangles都消失了:/
现在这解决了我的问题,但我希望这种行为不再发生变化。