모든 TableLayoutPanel
행의 기본 높이를 C#에서 16px로 어떻게 설정할 수 있습니까?TableLayoutPanel에서 행의 기본 높이 설정
for (int i = 0; i < amount_of_rows; i++)
{
panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 16));
}
을하지만 내 경우에는 내가 8 열과 행의 알 수없는 금액이 있습니다
보통 내가 할 것입니다. 행에 대한 금액은 모든 컨트롤이 추가 된 후 알 수 있습니다.
TableLayoutPanel panel = new TableLayoutPanel
{
BackColor = SystemColors.Control,
CellBorderStyle = TableLayoutPanelCellBorderStyle.Single,
AutoScroll = true,
Width = 500,
Location = new Point(-1, -1),
ColumnCount = 8
};
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 16));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 73));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 16));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 73));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 38));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 38));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 52));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 52));
int amountOfRows = 0;
for (...)
{
// a lot of code which populates panel with generated controls and counts amountOfRows
}
panel.RowCount = amountOfRows;
Controls.Add(panel);
이러한 코드는 24 픽셀 높이 행을 작성합니다
이 내 코드입니다.
for (int i = 0; i < amountOfRows ; i++)
{
panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 16));
}
일을하지만 마지막 행이 매우 큰 수 :
이 같은 인구 후 테이블 ColumnStyles를 추가.
편집 : 컨트롤을 추가하는 등 예제 코드 :
TableLayoutPanel panel = new TableLayoutPanel
{
BackColor = SystemColors.Control,
CellBorderStyle = TableLayoutPanelCellBorderStyle.Single,
AutoScroll = true,
Width = 500,
Location = new Point(-1, -1),
ColumnCount = 8,
Margin = new Padding(0),
Padding = new Padding(0)
};
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 16));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 73));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 16));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 73));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 38));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 38));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 52));
panel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 52));
for (int i = 0; i < 10; i++) // lets assume we don't know it will be added 10x
{
CheckBox exchangeEnabled = new CheckBox
{
Margin = new Padding(0),
Padding = new Padding(0),
Dock = DockStyle.Fill,
CheckAlign = ContentAlignment.MiddleCenter
};
panel.Controls.Add(exchangeEnabled, 0, i);
}
Controls.Add(panel);
고맙지 만 변경되지 않습니다. 나는 Margin = 새로운 Padding (0), Padding = 새로운 Padding (0)을 TableLayoutPanel과 그 컨트롤에 추가했다. 나는 컨트롤 추가를 포함한 예제 코드를 추가했다. 아니면 내가 너를 완전히 이해하지 않았 니? – LukAss741
흠, 아니, 너는 나에게 맞았다. 큰 여백/여백을 설정할 때 영향을 볼 수 있습니까? - 최대 값은 얼마입니까? 높이? 기본적으로 CheckBox는 자동 크기 조정을 사용하므로 높이는 글꼴 크기에 따라 다릅니다. – TaW
모든 컨트롤에서 Height = 16으로 설정. 여백과 여백이 0 인 경우에도 여전히 어떤 이유로 주변에 공간이 추가됩니다. 정확한 높이를 지정하면 작동합니다. 저에게 올바른 방향을 알려 주셔서 감사합니다. – LukAss741