ここでは、Windows フォームアプリケーションの Panel コントロールの優先度を変更するサンプルを掲載しています。
スポンサーリンク
例えば、フォーム上に Panel コントロールを 3つ配置してから配置したすべてのパネルの Dock プロパティを Top にした場合には、優先度は Panel コントロールを設置した順になるようです。配置した順に上に張り付きます。そして、これらの優先度はデザイナ上からは変更できないようです。
デザイナ上から変更できる方法があれば教えてもらえるとうれしいです
デザインファイルを直接修正する
デザイナからは修正できないため、Form.Designer.cs または Form.Designer.vb を直接編集します。ただし、このソースは自動生成されたものであり「コード エディタで変更しないでください」とも記述されているため保証はありません。
一度 Panel を削除して再配置することで十分だと思いますが、ここでは修正しています
VB.NET
Private Sub InitializeComponent()
(省略)
' フォームにコントロールが追加される順に優先度が低い
Me.Controls.Add(Me.Panel3)
Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Panel1)
(省略)
End Sub
C#
private void InitializeComponent()
{
(省略)
// フォームにコントロールが追加される順に優先度が低い
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
(省略)
}
このサンプルでは、フォームにコントロールが追加される順番が panel3, panel2, panel1 の順になっています。優先度が最も高いのは、最後に追加された Panel1 となります。
Panel コントロールの表示順を変更する
Panel コントロールの表示順は、Control.Add メソッドで追加する Panel コントロールの順番を変更することで制御できるようになります。
各Panel コントロールをデザイナで右クリックし、「最前面に移動」または「最背面に移動」を設定すればできると思います。
意味が違っていたらごめんなさい。