프로그래밍/C#

[WinForm] TableLayoutPanel 행 동적으로 컨트롤 하기

큐레이트 2019. 1. 9. 18:04
반응형

C# Winform에서 TableLayoutPanel로 Runtime시 동적으로 행을 숨기고 보이게 하는 방법

- 숨김 처리될 행의 SizeType을 Absolute으로 설정

- 숨김 처리될 행 아래에 행이 있다면 그 행을 SizeType을 Percent로 설정

- 숨김 처리될 행의 Height를 0으로 설정

- 숨김 처리될 행만큼 TableLayoutPanel의 Height 조절

 

 

 

TableLayoutPanel Hide/Show

[빨간박스는 숨겨질 행]

 

 


Hide Button Source Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void btnHideShow_Click(object sender, EventArgs e)
{
    int hideRow = tableLayoutPanel1.GetRow(panel2);            
    const int hidePanelHeight = 100;
            
    if (tableLayoutPanel1.RowStyles[hideRow].Height > 0)
    {
        tableLayoutPanel1.RowStyles[hideRow].Height = 0;    // 숨김처리
        tableLayoutPanel1.Height -= hidePanelHeight;        // Table의 Height를 숨겨진 Panel Height만큼 줄여준다
    }
    else
    {
        tableLayoutPanel1.RowStyles[hideRow].Height = hidePanelHeight;  // 원래상태로 돌린다.
        tableLayoutPanel1.Height -= hidePanelHeight;                    // Table의 Height를 원래상태로 돌려준다.
    }
 
    (sender as Button).Text = (sender as Button).Text == "Hide" ? "Show" : "Hide";
}
cs

 

 


 

소스파일 : TableLayoutPanel.D20190109.zip

 

반응형