在TableLayoutPanel中添加行到顶部

4
我可以帮您完成翻译。以下是您需要翻译的内容:

我正在尝试在表格布局面板的顶部添加新行。为此,我使用以下代码:

初始化

TableLayoutPanel panel = new TableLayoutPanel();
panel.ColumnCount = 1;
panel.RowCount = 1;
panel.AutoScroll = true;
panel.Location = new System.Drawing.Point(280, 52);
panel.Size = new System.Drawing.Size(308, 189);
panel.Visible = true;
panel.BackColor = Color.DarkGray;
Controls.Add(panel);

对于每一行新数据

panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 16F));
panel.Controls.Add(new Label() { Text = text, AutoSize = false, ForeColor = Color.White, Font = font }, 0, 0);
panel.RowCount = panel.RowCount + 1;

问题 在增加4行后,似乎一切正常运行。例如:

迭代1 --> 玩家1

迭代2 --> 玩家2 玩家1

迭代3 --> 玩家3 玩家2 玩家1

迭代4 --> 玩家4 玩家3 玩家2 玩家1

问题来了

迭代5 --> 玩家4 玩家5 玩家3 玩家2 玩家1

你有任何关于可能出现的情况的想法吗?

1个回答

6
添加新行后,您需要将所有控件向下推一行,然后插入新的控件:
panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 16F));
panel.RowCount++;
foreach (Control c in panel.Controls) {
  panel.SetRow(c, panel.GetRow(c) + 1);
}
panel.Controls.Add(new Label() { Text = text }, 0, 0);

太棒了!非常感谢你! - Aldridge1991
我需要知道的正是这个。谢谢。 - A.Clymer
你如何使用设计师将行向上推? - Legends
1
@Legends 表格设计师有添加、删除或插入新行的选项。但没有“上移”或“下移”的选项。 - LarsTech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接