0

我在 Visual Studio 2010 中有一个 GUI,它有几个 PictureBoxes、LineShapes/Rectangles 和 Labels/TextBoxes。LineShapes/Rectangles 需要在 PictureBoxes 前面,Labels/TextBoxes 需要在 LineShapes/Rectangles 前面。

几个月来,当我在表单的 Load 事件处理程序中以所需的顺序调用 BringToFront() 方法时,我的 GUI 工作正常。我首先调用了ShapeContainer 的BringToFront() 方法,然后为所有标签/文本框调用了BringToFront() 方法。

突然之间,我的 PictureBoxes 开始出现在我的 LineShapes/Rectangles 前面。将我的最新代码与上一个工作标记进行比较表明,这些对象没有任何变化。我尝试在表单的 Load 事件处理程序中为 PictureBoxes 调用 SendToBack() 方法,但没有效果。

有人可以解释为什么我的这种行为会自发地改变,以及我应该做些什么来确保正确显示我的图片框、线条形状/矩形和标签/文本框?

4

1 回答 1

0

如果我在 Form 的 Paint 事件处理程序中调用所有 PictureBoxes SendToBack 方法,我似乎又得到了我想要的行为。

奇怪的是,我不能为那里的所有其他对象调用 BringToFront 方法,或者我的 LineShapes/Rectangles 都消失了:/

现在这解决了我的问题,但我希望这种行为不会再次改变。

于 2015-06-04T13:51:05.810 回答