모든 컨트롤을 DockStyle.Fill
및 AutoSize = true
으로 설정하면 목록 상자의 크기를 조정할 수 있습니다.
그룹 상자에 여러 컨트롤이있는 경우 자동 맞춤하려는 모든 컨트롤에 TableLayoutPanel
을 사용하는 것이 좋습니다.
또한 RowStyle
및 ColumnStyle
을 SizeType.AutoSize
으로 설정할 수 있습니다.
양식에서이 코드는 저에게 잘 작동합니다.
private void InitComponents()
{
tableLayoutPanel1 = new TableLayoutPanel();
groupBox1 = new GroupBox();
groupBox2 = new GroupBox();
listBox1 = new ListBox();
listBox2 = new ListBox();
tableLayoutPanel1.AutoSize = true;
tableLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableLayoutPanel1.ColumnCount = 2;
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize, 50F));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
tableLayoutPanel1.Controls.Add(groupBox2, 1, 0);
tableLayoutPanel1.Controls.Add(groupBox1, 0, 0);
tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.RowCount = 1;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
groupBox1.AutoSize = true;
groupBox1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
groupBox1.Controls.Add(listBox1);
groupBox1.Dock = DockStyle.Fill;
groupBox2.AutoSize = true;
groupBox2.AutoSizeMode = AutoSizeMode.GrowAndShrink;
groupBox2.Controls.Add(listBox2);
groupBox2.Dock = DockStyle.Fill;
listBox1.Dock = DockStyle.Fill;
listBox1.AutoSize = true;
listBox2.Dock = DockStyle.Fill;
listBox2.AutoSize = true;
Controls.Add(tableLayoutPanel1);
}
사용자가 직접 제어하는 것이 더 쉽습니다. 그룹 박스 목록 상자 등을 넣으십시오. 그런 다음 새 사용자 정의 컨트롤을 tablelayoutpanel에 넣습니다. 관리가 더 쉽습니다. –
ListBox 컨트롤이 GroupBox 컨트롤의 자식인지 확인한 다음 Anchor 속성을 설정하십시오. 아마 모든면에서 상위 GroupBox에 고정 할 수 있습니다. –
Dock 및 Anchor 속성을 설정하여 원하는 레이아웃을 간단하게 얻을 수 있습니다. 예를 들어'GroupBox'의'Dock' 속성을'Fill'으로 설정하고 그 자식의'ListBox'의'Anchor'를'Top, Left, Bottom, Right'으로 설정하십시오. 또한'ListBox'의'IntegralHeight' 속성을'false'로 설정하십시오. –