ListViewItem[] ListViewItemBox = new ListViewItem[200];
//将原listview中的选中项先复制到数组里:
for (int i = 0; i < listView1.SelectedItems.Count; i++)
{
ListViewItemBox[i] = listView1.SelectedItems[i];
}
//再实现以下插入语句的时候,总是报错,为什么?报错说无法插入XX数值,该数值的值刚好是 ListViewItemBox[0].subitem[0].text
listView1.Items.Insert(0,ListViewItemBox[0]);
ListViewItem[] ListViewItemBox = new ListViewItem[200];
ListView1.Items.Insert(0,ListViewItemBox[0]);
注意以上我是先声明了一个“ListViewItem[]”数组,然后把该数组的第一个元素ListViewItemBox[0]插入到原listView1表的第一行去, insert方法的第二个参数明明就是ListViewItem 类型的,ide也不报错,但是为什么执行的时候就是无法插入
C# VS2008 ListView控件 怎样实现item复制粘贴
答案:4 悬赏:70
解决时间 2021-02-18 13:26
- 提问者网友:说不出醉人情话
- 2021-02-18 07:52
最佳答案
- 二级知识专家网友:一起来看看吧
- 2021-02-18 09:04
ListViewItem[] ListViewItemBox = new ListViewItem[200];
for (int i = 0; i < listView1.SelectedItems.Count; i++)
{
ListViewItemBox[i] = listView1.SelectedItems[i].Clone() as ListViewItem;
}
listView1.Items.Insert(0, ListViewItemBox[0]);
我按照你的代码测试,报的错误是:
"Cannot add or insert the item '1' in more than one place. You must first remove it from its current location or clone it.\r\nParameter name: item"
这里它这个“1”是我Item的第一个字符串。它并不代表你在插入一个字符串。只是用来代表你正在进行操作的对象。
这个错误实际报的是同一个ListViewItem的引用不能在ListView中添加两遍,所以我要在这里做一下克隆(Clone()),创建一个完全相同的新的对象。
ListViewItemBox[i] = listView1.SelectedItems[i].Clone() as ListViewItem;
这样就没有问题了
for (int i = 0; i < listView1.SelectedItems.Count; i++)
{
ListViewItemBox[i] = listView1.SelectedItems[i].Clone() as ListViewItem;
}
listView1.Items.Insert(0, ListViewItemBox[0]);
我按照你的代码测试,报的错误是:
"Cannot add or insert the item '1' in more than one place. You must first remove it from its current location or clone it.\r\nParameter name: item"
这里它这个“1”是我Item的第一个字符串。它并不代表你在插入一个字符串。只是用来代表你正在进行操作的对象。
这个错误实际报的是同一个ListViewItem的引用不能在ListView中添加两遍,所以我要在这里做一下克隆(Clone()),创建一个完全相同的新的对象。
ListViewItemBox[i] = listView1.SelectedItems[i].Clone() as ListViewItem;
这样就没有问题了
全部回答
- 1楼网友:放肆的依賴
- 2021-02-18 10:33
ListViewItem的第一个text直接用ListViewItemBox[0].Text,之后的才用subitem。另外,你的"ListViewItem[] ListViewItemBox = new ListViewItem[200]; ",里面的数组成员可都是类对象,貌似也需要new的吧
- 2楼网友:星痕之殇
- 2021-02-18 09:45
好像只有个fullrowselect属性设为子项突出显示
- 3楼网友:湫止没有不同
- 2021-02-18 09:11
你这里有一点逻辑错误
你想 listview的数组 包含什么?
当然是 包含listview 了 然后当众的listview 再包含你所要粘贴的值
这样你试试 不行 再问
回答补充:你想把列表插入到列表中 这样做肯定是不行的 你应当获取到 列表中的值 也就是列表项 再做插入操作 你先试试 不行的话 我用程序帮你做一下
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯