C#

C# TableLayoutPanel 일정간격으로 표현방법(코딩,디자인)

소중대 2016. 7. 24. 23:20
반응형

C# Winform TableLayoutPanel로 표 형식의 패널을 구성할 수 있습니다.

우선 간단하게 Design파트에서 표현하는 방법으로는

 툴박스에서 TableLayoutPanel을 드래그드롭하여

추가한 뒤 TableLayoutPanel 상단우측을 클릭하면 나오는

Edit Rows and Columns를 클릭하고

추가하고자 하는 Column과 Row를 추가/삭제할 수 있습니다.

이 때 일정 간격으로 맞추기 위해서는

맞추고자하는 해당 Column이나 Row들을 선택 후 Percent를 같은 비율로 입력해주면 되는데요.

굳이 비율을 딱 맞춰 계산할 필요없이 합이 100%이상이 되도록 큰 수를 입력해주면


아래와 같이 일정간격으로 맞춰집니다.

(CellBorderStyle을 Single로 맞출 경우 TableLayoutPanel에 선이 보이게 됩니다.)


코딩을 통해 일정간격으로 맞추고자 할 경우

여러가지 방법이 있을 수 있는데

아래의 코드는 간격을 상수값을 통해(SizeType을 Absolute로 하여) 일정하게 맞추는 코드입니다.

특이한 점은 셀의 가장자리인 Border의 길이를 감안하고 크기를 맞춰줘야 해서

아래와 같이 갯수*길이에서 Border값들을 추가로 더해줘야 일정간격으로 표현할 수 있습니다.

tablelayoutpanel.Width = (columncount) * (cellwidth+1)+1;

tablelayoutpanel.Height = (rowcount) * (cellheight+1)+1;

int rowcount = 15;

int columncount = 3;


int cellwidth = 10;

int cellheight = 15;


tablelayoutpanel.RowStyles.Clear();

tablelayoutpanel.ColumnStyles.Clear();

//TableLayoutPanel의 Row, Column 스타일 초기화


tablelayoutpanel.RowCount = rowcount;

tablelayoutpanel.ColumnCount = columncount;

//Row와 Column 갯수 설정


tablelayoutpanel.Width = (columncount) * (cellwidth+1)+1;

tablelayoutpanel.Height = (rowcount) * (cellheight+1)+1;

//TableLayoutPanel 가로, 세로 길이 설정


for (int i = 0; i < rowcount; i++)

{

tablelayoutpanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, cellheight));

}

//row추가

for (int i = 0; i < columncount; i++)

{

tablelayoutpanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, cellwidth));

}            

//column추가


반응형