如何搜集listview?大家看看我的代码哪里错了
List<int> list=new List<int>();
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count < 1)
{
return;
}
ListViewItem lvi = this.listView1.SelectedItems[0];
selectid = (int)lvi.Tag;//保存的id赋值给它
list.Add(selectid);
}
//删除按钮
private void button6_Click(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count < 1)
{
MessageBox.Show("请选择要删除的记录", "提示");
return;
}
else
{
for (int i = 0; i < list.Count; i++)
{
ProductDao.deleteById(list[i]);//数据操作层
ListViewItem lvi = this.listView1.SelectedItems[0];
lvi.Remove();
}
}
//............部分代码省略
}
当用户每选择listview里面的一条数据的时候,就会触发第一个事件,我就会用list存它的id,id是我在加载到listview的时候,已经存在tag里了,
当用户点击“删除”按钮的时候,我就会拿出刚才存起来的id集合,一条条的删除,并且从listview里面移除掉那条数据
现在最大的问题是删除方法那里for方法,那个list很奇怪,每循环一次,list的count就加1了。。。越来越大,是怎么回事呢?
还是大家有什么另外的方法帮我实现相同的功能呢? --------------------编程问答-------------------- 肯定是循环就多一个了 因为你后面的操作就是改变了changeselectindex的值了 你的list就会累加了,listview里本来就是有你点击或则选择的时候就有相关的信息了的,直接去循环他里面的东西就行了 只是你加载数据进去了 看你是怎么放进去的 --------------------编程问答--------------------
//在窗体加载的时候执行 foreach (crm p in ls)
// {
// AddProduct(p);
// }
//循环添加实体到listview1
private void AddProduct(crm p)
{
ListViewItem lvi;
lvi = new ListViewItem(p.Order.ToString());
lvi.Tag = p.Id;
lvi.SubItems.Add(p.Name);
lvi.SubItems.Add(p.Tel.ToString());
lvi.SubItems.Add(p.Qq.ToString());
lvi.SubItems.Add(p.Address.ToString());
listView1.Items.Add(lvi);
}
补充:.NET技术 , C#