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() メソッドを呼び出してみましたが、効果がありませんでした。

この動作が自然に変わった理由と、PictureBoxes、LineShapes/Rectangles、および Labels/TextBoxes を正しく表示するために何をすべきかを誰かが説明できますか?

4

1 に答える 1

0

フォームの Paint イベント ハンドラーですべての PictureBoxes SendToBack メソッドを呼び出すと、目的の動作が再び得られるようです。

奇妙なことに、そこにある他のすべてのオブジェクトの BringToFront メソッドを呼び出すことができないか、LineShapes/Rectangles がすべて消えてしまいます:/

今のところこれで問題は解決しましたが、動作が再び変わらないことを願っています。

于 2015-06-04T13:51:05.810 に答える