2016-06-30 5 views
0

2 개의 GroupBox가있는 TableLayoutPanel을 사용합니다 (레이아웃에는 2 개의 열이 있습니다). 이 GroupBox 안에는 다른 것들 중에서 두 개의 ListBox (각 GroupBox에 하나씩)가 있습니다.GroupBox 내에있는 ListBox를 자동 크기 조절

양식의 크기를 조정하려고하면 그룹 상자가 새 크기로 조정되지만 ListBox는 조정되지 않습니다. 도크, 앵커, 최소 크기, 수정 자 등의 매개 변수를 변경하려고 시도했습니다. 다소 비슷한 문제에 대한 게시물을 기반으로합니다. 하지만 아무것도 내 ListBoxes '동적 크기를 만드는 것 같다.

혹시 들으셨습니까?

+0

사용자가 직접 제어하는 ​​것이 더 쉽습니다. 그룹 박스 목록 상자 등을 넣으십시오. 그런 다음 새 사용자 정의 컨트롤을 tablelayoutpanel에 넣습니다. 관리가 더 쉽습니다. –

+1

ListBox 컨트롤이 GroupBox 컨트롤의 자식인지 확인한 다음 Anchor 속성을 설정하십시오. 아마 모든면에서 상위 GroupBox에 고정 할 수 있습니다. –

+0

Dock 및 Anchor 속성을 설정하여 원하는 레이아웃을 간단하게 얻을 수 있습니다. 예를 들어'GroupBox'의'Dock' 속성을'Fill'으로 설정하고 그 자식의'ListBox'의'Anchor'를'Top, Left, Bottom, Right'으로 설정하십시오. 또한'ListBox'의'IntegralHeight' 속성을'false'로 설정하십시오. –

답변

0

모든 답변과 의견을 보내 주셔서 감사합니다. 나는 그 해결책을 찾았다 !! 사실 문제는 그룹 상자 내부의 레이아웃이었습니다. 3 행으로 분할되었고 목록 상자를 포함하는 행의 "syze 유형"이 자동 크기 조정되도록 설정되었습니다. 방금 Absolute (픽셀 단위)로 변경 했으므로 트릭을 만들었습니다!

0

모든 컨트롤을 DockStyle.FillAutoSize = true으로 설정하면 목록 상자의 크기를 조정할 수 있습니다.

그룹 상자에 여러 컨트롤이있는 경우 자동 맞춤하려는 모든 컨트롤에 TableLayoutPanel을 사용하는 것이 좋습니다.

또한 RowStyleColumnStyleSizeType.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); 
    } 
+0

나는 listbox.AutoSize를 알지 못했다. 매개 변수 목록에 없습니다 ... –

관련 문제