簡體   English   中英

C#Winform添加面板停靠設置

[英]C# winform add panel dock setting

我需要在主面板中添加多個面板,當我添加第二個面板時,它將在第一個添加的面板頂部移動。 如果您聽不懂我的意思,請參考圖片。

問題是,如何在剛添加的面板下面添加以下面板?

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;
    }

在此處輸入圖片說明

您得到的結果是因為:

panel1.Dock = DockStyle.Top;

因此,您添加的每個面板都將添加到頂部。 可以按相反的順序添加面板嗎? 那將是一個快速的解決方案,否則,如果這對您的問題有用,那么您可以考慮使用TableLayoutPanel或FlowLayoutPanel。

您需要更改z順序才能更改停靠面板的順序。 最好不要更改大量代碼的做法是使用:

panel1.BringToFront();

要么

panel1.SendToBack();

根據您想要的順序

這需要將它添加到之后進行mainPanel (即,后mainPanel.Controls.Add(panel1);線)

嘗試使用panel1.Dock = DockStyle.Bottom; panel1.Dock = DockStyle.Top;panel1.Dock = DockStyle.Top;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM