selectListView的特定列并将其打印在C#.net的新消息框中

我刚刚开始在C#.net中使用ListView。

我知道如何添加项目和子项目。 通过列表视图,我想从多行中获取整个列的所有数据。

我想知道如何做到这一点。

我发现这个代码从一行中列出特定的选定数据:

ListView.SelectedIndexCollection sel = listView1.SelectedIndices;

if (sel.Count == 1) { ListViewItem selItem = listView1.Items[sel[0]]; MessageBox.Show(selItem.SubItems[2].Text); } 

这是有帮助的,但我想列出所有在一行中的项目,可能是我想要添加数组中的所有列项目?

  private string[] GetListViewItemColumns(ListViewItem item) { var columns = new string[item.SubItems.Count]; for (int column = 0; column < columns.Length; column++) { columns[column] = item.SubItems[column].Text; } return columns; } 

我会建议一些谨慎的做法。 ListView实际上是为了显示信息,它不是一个伟大的集合类。 从数据中获取数据是慢而且糟糕的,它只能存储字符串。 将程序中的数据保持原来的形式,可能是List<Foo> 。 现在它简单快捷。

  foreach(listView1.Items中的ListViewItem项){
     //用项目做一些事情
 } 

你可以通过foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } } foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }