为了清楚起见,我将进一步改进我的信息:
我有一个 TableLayoutView(我称之为 tlv),它有5 个固定列和x + 2行。tlv 的第一行包含每个单元格中用于标题目的的标签。我在 tlv 上动态添加更多行,因此它为什么具有可变数量的行(加上从未删除的初始标题行)。
作为另一个小问题,我还在 tlv 底部保留了一个空行条目,我必须保留它,因为我将它用于其他功能。
为了形象化我刚才所说的内容,这是一个 tlv 示例,由 4 个条目(编号)、标题行 (H's) 和占位符行 (P's) 组成。
HHHHH
11111
22222
33333
44444
PPPPP
我想从那个开始,也就是说,如果我想交换条目 2 和 3,输出将是:
HHHHH
11111
33333
22222
44444
PPPPP
我到目前为止的代码如下:
for (int j = 0; j < 5; j++)
{
TableLayoutPanelCellPosition tablePosition1 = new
TableLayoutPanelCellPosition(j, rowIndex + 1);
Control moveControl1 = queuedFiles.GetControlFromPosition(j, rowIndex);
queuedFiles.SetCellPosition(moveControl1, tablePosition1);
TableLayoutPanelCellPosition tablePosition2 = new
TableLayoutPanelCellPosition(j, rowIndex);
Control moveControl2 = queuedFiles.GetControlFromPosition(j, rowIndex + 1);
queuedFiles.SetCellPosition(moveControl2, tablePosition2);
if (j.Equals(0))
{
moveControl1.Text = (rowIndex + 1).ToString();
moveControl2.Text = (rowIndex).ToString();
}
}
但是,此代码不起作用,对于上面的示例,它会生成:
HHHHH
11111
33222
22333
44444
PPPPP
我相信正在发生的是 tlv 在移动它们的过程中自动组织它的内容本身(也许是为了填补空白?)。
上面的rowIndex是目标行的索引,必须与其下面的行交换。我不需要担心检查是否只有 1 行或者它是否是最后一行,因为我已经这样做了。也忽略更改文本,我只需要一个关于如何实现预期结果的指针!
绝对感谢您提供的任何帮助:)
相关分类