2016-05-30 10 views
0

メインパネルに複数のパネルを追加する必要があります。2番目のパネルを追加すると、最初に追加されたパネルの上に移動します。私が何を意味するのか分からない場合は、画像を参照してください。C#winform addパネルドック設定

質問は、追加するパネルの下に次のパネルを追加するにはどうすればよいですか?

public override DockStyle Dock { get; set; } 
private void resultlabel() 
    { 

     Panel panel1 = new Panel(); 
     panel1.Height = 50; 
     panel1.Dock = DockStyle.Top; 
     panel1.AutoSize = false; 
     panel1.AutoSizeMode = AutoSizeMode.GrowOnly; 
     panel1.AllowDrop = false; 
     panel1.CausesValidation = true; 
     if((totalitem % 2) == 0) 
     { 
      panel1.BackColor = Color.Blue; 
     } 
     else 
     { 
      panel1.BackColor = Color.Orange; 
     } 
     Label label1 = new Label(); 
     label1.Text = count.ToString(); 
     panel1.Controls.Add(label1); 
     mainPanel.Controls.Add(panel1); 
     count= count+ 1; 
    } 

enter image description here

+0

結果は4,3,2,1ですが、私が必要とするのは1,2,3,4 –

答えて

0

ドッキングパネルの順序を変更するには、zオーダーを変更する必要があります。多くのコードを変更することなく、あなたの最善の策は使用して次のようになります。

panel1.BringToFront(); 

それとも

panel1.SendToBack(); 

を順序によってあなたが欲しい

これは後追加を行う必要がありますそれはmainPanelに(すなわち、mainPanel.Controls.Add(panel1);行の後に)

+0

です。問題を解決してください –

0

あなたはこのために結果を得る:

panel1.Dock = DockStyle.Top; 

だから、あなたが追加した各パネルが先頭に追加されます。パネルを逆の順序で追加できますか?これは簡単な解決策になります。そうしないと、問題のための便利な方法であれば、TableLayoutPanelまたはFlowLayoutPanelを調べることができます。

0

panel1.Dock = DockStyle.Bottom;の代わりに使用しよう:panel1.Dock = DockStyle.Top;

+0

しかし、それはOPが望んでいるように、トップにではなく、ボトムにドッキングされます – Jcl