我有一个带有5或7列的tableLayoutPanel。用户可以点击“显示/隐藏周末”按钮,从5天切换到7天。
问题:当您开始5天时,然后按5/7按钮,7列不均匀间隔...第6列比其余部分小得多。 奇怪的是,如果你从7天开始,一切看起来都不错。当你切换到5,然后回到7,仍然一切都很好??
void lblSatSunday_Click(object sender, EventArgs e)
{
ShowZaterdagZondag = !ShowZaterdagZondag;
AddDisplayControls();
}
private void AddDisplayControls()
{
tblPanel.SuspendLayout();
tblPanel.Controls.Clear();
tblPanel.ColumnCount = ShowZaterdagZondag ? 7 : 5; // <<<-------
tblPanel.RowCount = 1;
tblPanel.GrowStyle = TableLayoutPanelGrowStyle.FixedSize;//.AddColumns;
for (int i = 0; i < tblPanel.ColumnCount; i++)
{
ColumnStyle cs = new ColumnStyle(SizeType.Percent, 100 / tblPanel.ColumnCount);
tblPanel.ColumnStyles.Add(cs);
//Add accordeon
Accordeon a = new Accordeon();
//Removed code for reading
tblPanel.Controls.Add(a);
}
tblPanel.ResumeLayout();
}
答案 0 :(得分:13)
在for循环之前添加以下代码:
tblPanel.ColumnStyles.Clear();