【发布时间】:2011-02-18 20:54:42
【问题描述】:
在 ListView 中交换项目的最简单方法是什么?
我的方案是有一个排列方法。
示例: 我想将第一行或索引 0 中的元素更改为第二行或索引 1
ListView 项目起始顺序:
- |你好|你好|
- |12345|12|
交换后
- |12345|12|
- |你好|你好|
如何做到这一点?
【问题讨论】:
在 ListView 中交换项目的最简单方法是什么?
我的方案是有一个排列方法。
示例: 我想将第一行或索引 0 中的元素更改为第二行或索引 1
ListView 项目起始顺序:
交换后
如何做到这一点?
【问题讨论】:
您是否尝试从 ListView 中删除 ListViewItem n,当然保留对它的引用,然后您可以将其插入到位置 n-1。
我没有尝试过,但如果我记得很清楚的话,有 ListView.Items.Insert 或 AddAt,它以索引作为参数并添加 ListViewItem。
【讨论】:
你可以创建一个函数,它需要两个你想要交换的索引和商业交换 像这样:
private: void Swapinlistbox( int indexA, int indexB)
{
ListViewItem item = listView1.Items[indexA];
listView1.Items.Remove(item);
listView1.Items.Insert(indexB, item);
}
【讨论】:
ListView 的通用 Swap 方法:
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);
}
【讨论】: