C# TableLayoutPanel 일정간격으로 표현방법(코딩,디자인)
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추가