2015-12-23 3 views
0

Я использую WinForms. В моей форме у меня есть 2 панели, которые я хочу состыковать или щелкнуть по кнопке.Панель док-станции на кнопке Нажмите C#

Проблема, с которой я сталкиваюсь, заключается в том, что мои панели не стыкуются правильно. Когда я нажимаю кнопку «вверх», панель на одной этикетке покрывается панелью2.

Группа 1: (Anchor: Top, Left, Right)

Группа 2: (Anchor: сверху, снизу, слева, справа)

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

Неправильная метка не должна быть охвачены панели

enter image description here

Что должно произойти при нажатии кнопки Up щелкают

enter image description here

Что должно произойти при нажатии кнопки вниз нажата

enter image description here

+1

Panel1 заполняет всю форму, panel2 перекрывает его. Таким образом, сокрытие этикетки. Вам придется изменить порядок элементов управления Z. this.Controls.SetChildIndex(). –

ответ

0
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

+0

Спасибо! Это сделал трюк. – taji01