C#winform添加面板停靠设置

时间:2016-05-30 10:32:43

标签: c# winforms dock

我需要在主面板中添加多个面板,当我添加第二个面板时,它将在第一个添加的面板上移动。如果你不能理解我的意思,请参考图片。

问题是,如何在我刚添加的面板下面添加以下面板?

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

3 个答案:

答案 0 :(得分:0)

你得到的结果是:

panel1.Dock = DockStyle.Top;

因此,您添加的每个面板都会添加到顶部。你能以相反的顺序添加面板吗?这将是一个快速的解决方案,否则您可以查看TableLayoutPanel或FlowLayoutPanel,如果这对您的问题是一个有用的方法。

答案 1 :(得分:0)

您需要更改z顺序以更改停靠面板的顺序。不打算更改大量代码的最佳选择是使用:

Block 1:
<<A
B
C
D
E
F

>>

Block 2:
<<A
B
C
D
E
F

>>

或者

panel1.BringToFront();

取决于您想要的顺序

这需要在 之后 将其添加到panel1.SendToBack(); (即mainPanel行之后)

答案 2 :(得分:0)

尝试使用panel1.Dock = DockStyle.Bottom; intead:panel1.Dock = DockStyle.Top;