c# winform 如何读取 listview里的每一条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform 如何读取 listview里的每一条数据相关的知识,希望对你有一定的参考价值。

参考技术A private void listView1_SelectedIndexChanged(object sender, EventArgs e)

if (listView1.SelectedItems.Count > 0)

ListViewItem lvi = new ListViewItem();
lvi = listView1.SelectedItems[0];
this.txtTypeName.Text = lvi.SubItems[1].Text;
this.txtTypeDescription.Text = lvi.SubItems[2].Text;

参考技术B listview中有rows属性,rows属性中有columns属性。
你可以通过rows遍历行,然后通过columns遍历列。本回答被提问者采纳

c# winform 中如何写事件监听 比如监听listview.items.count是不是发生变化

listview.ItemChanging+=ListviewItemChanging; //(这是一个 函数名 在这个函数中,你可以拦截 即将对 ListView 组的修改)
listview.ItemChanged+=ListviewItemChanged; //(这是一个 函数名 在这个函数中,你可以处理当 ListView 的组发生改变之后需要做的事情:比方说,重新统计某些变量)追问

怎么拦截?我的意思是比如我对listview插入或者删除一条数据时,会自动触发我自定义的事件,执行事件里面的代码。就像点击一个button后会执行button_click事件中的代码一样。我现在是写了事件,但是进行插入或者删除时,我定义的事件里的代码并没有执行。

追答

选中 ListView ,在左边的 “属性” 框中找 ItemChanging ItemChanged 事件, 双击这两个事件,就会 有 这两个事件的 函数体;

在这两个函数体中写代码;
ItemChanging 中理论上应该有 个参数 e
e.Cancel =true; 插入 或者 删除操作就会被中止!
_____________________________________________________

追问

我找到了ItemChanging事件,并在方法里写了MessageBox.Show("succeed");但是对listview插入数据的时候,并没有执行。那个e.Cancel点不出来,我写e.后面只出来Equals,GetHashCode,GetType,GetToString,

追答

那就是 试试 CollectionChanged 和 CollectionChanging 事件:ItemChanged 和 ItemChanging 事件,我自己都没有找出来;

不是给你发了一个截图的么?

只有 Changing 事件才有 e.Cancel

参考技术A 没有听懂你的意思,如果就像看看每时每刻有没有变化,就可以用Timer组件来实现就可以了。

以上是关于c# winform 如何读取 listview里的每一条数据的主要内容,如果未能解决你的问题,请参考以下文章

winform c#删除图片提示文件被占用

C#如何让listview可编辑 winform

C# winform datagridview如何计算统计

winform c# listview 如何 选中行!急!在线等!

winform c# listview 如何 选中行!急!在线等!

c# winform 如何记录日志