为了账号安全,请及时绑定邮箱和手机立即绑定

在 TableLayoutPanel 中交换控件位置

在 TableLayoutPanel 中交换控件位置

C#
qq_花开花谢_0 2021-06-03 15:03:50
为了清楚起见,我将进一步改进我的信息:我有一个 TableLayoutView(我称之为 tlv),它有5 个固定列和x + 2行。tlv 的第一行包含每个单元格中用于标题目的的标签。我在 tlv 上动态添加更多行,因此它为什么具有可变数量的行(加上从未删除的初始标题行)。作为另一个小问题,我还在 tlv 底部保留了一个空行条目,我必须保留它,因为我将它用于其他功能。为了形象化我刚才所说的内容,这是一个 tlv 示例,由 4 个条目(编号)、标题行 (H's) 和占位符行 (P's) 组成。HHHHH11111222223333344444PPPPP我想从那个开始,也就是说,如果我想交换条目 2 和 3,输出将是:HHHHH11111333332222244444PPPPP我到目前为止的代码如下: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();    }}但是,此代码不起作用,对于上面的示例,它会生成:HHHHH11111332222233344444PPPPP我相信正在发生的是 tlv 在移动它们的过程中自动组织它的内容本身(也许是为了填补空白?)。上面的rowIndex是目标行的索引,必须与其下面的行交换。我不需要担心检查是否只有 1 行或者它是否是最后一行,因为我已经这样做了。也忽略更改文本,我只需要一个关于如何实现预期结果的指针!绝对感谢您提供的任何帮助:)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 352 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信