如何在ListView详细信息视图中交换两行?

时间:2011-02-18 20:54:42

标签: c# winforms listview

在ListView中交换项目的最简单方法是什么?

我的方案是采用一种安排方法。

样品: 我想将第1行中的元素或索引0更改为第2行或索引1

ListView项目的开始顺序:

  • |你好|喜|
  • | 12345 | 12 |

交换后

  • | 12345 | 12 |
  • |你好|喜|

如何做到这一点?

3 个答案:

答案 0 :(得分:4)

您是否尝试从ListView中删除ListViewItem n,当然保留对它的引用,然后您可以将它插入位置n-1。

我没有尝试过,但如果我记得很清楚,那就是ListView.Items.Insert或AddAt,它将索引作为参数并添加ListViewItem。

答案 1 :(得分:1)

你可以创建一个函数,它需要两个你想要交换和商业交换的权限 像这样:

private: void Swapinlistbox( int indexA, int indexB)
        {
            ListViewItem item = listView1.Items[indexA];
            listView1.Items.Remove(item);
            listView1.Items.Insert(indexB, item);


        }

答案 2 :(得分:0)

ListView的常规交换方法:

 private void SwapListView(ListView list, ListViewItem itemA, ListViewItem itemB)
 {
        int bIndex = itemB.Index;
        int aIndex = itemA.Index;
        list.Items.Remove(itemB);
        list.Items.Remove(itemA);
        list.Items.Insert(bIndex, itemA);
        list.Items.Insert(aIndex, itemB);
 }