我在Visual Studio 2010中有一个GUI,其中有几个PictureBoxes, LineShapes/Rectangles和label/TextBoxes。线条形状/矩形需要在图片框的前面,标签/文本框需要在线条形状/矩形的前面。
几个月来,当我在表单的Load事件处理程序中按所需顺序调用BringToFront()方法时,我的GUI工作正常。我首先调用了ShapeContainer的BringToFront()方法,然后调用了所有标签/文本框的BringToFront()方法。
突然间,我的PictureBoxes开始出现在我的LineShapes/Rectangles前面。将我的最新代码与我的最后一个工作标记进行比较,可以发现这些对象没有任何变化。我尝试调用SendToBack()方法的图片框在我的表单的加载事件处理程序,但它没有效果。
有人能解释为什么这种行为自发地改变了我,我应该做些什么来确保正确显示我的图片框,线条形状/矩形,标签/文本框?
如果我在窗体的Paint事件处理程序中调用所有的PictureBoxes SendToBack方法,我似乎又得到了我想要的行为。
奇怪的是,我不能调用BringToFront方法为所有我的其他对象那里,或我的LineShapes/Rectangles全部消失:/
目前这解决了我的问题,但我希望行为不会再改变。