按钮上的停靠面板单击 C#

Dock Panel on Button Click C#

我正在使用 WinForms。在我的表单中,我有 2 个面板,我想在单击按钮时向上或向下停靠。

我 运行 遇到的问题是我的面板没有正确对接。 当我点击向上按钮时,面板 1 标签被面板 2 覆盖。

面板 1:(锚:上、左、右)

面板 2:(锚:上、下、左、右)

    private void Up_Btn_Click(object sender, EventArgs e)
    {
        panel1.Dock = System.Windows.Forms.DockStyle.Fill;

        panel2.Dock = System.Windows.Forms.DockStyle.Top;
    }

    private void Down_Btn_Click(object sender, EventArgs e)
    {
        panel1.Dock = System.Windows.Forms.DockStyle.Fill;

        panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
    }

错误的标签不应被面板覆盖

单击向上按钮时应该发生什么

单击“向下”按钮时应该发生什么

public Form1()
{
    InitializeComponent();
    panel1.BringToFront();
}

private void Up_Click(object sender, EventArgs e)
{
    panel1.Dock = DockStyle.Fill;
    panel2.Dock = DockStyle.Top;
}

private void Down_Click(object sender, EventArgs e)
{
    panel1.Dock = DockStyle.Fill;
    panel2.Dock = DockStyle.Bottom;
}

诀窍是更正控件的顺序。

看这里:Docking multiple controls - one fills remaining space