如何获取最后一个列表视图列
本文关键字:最后一个 列表 视图 获取 何获取 | 更新日期: 2023-09-27 18:33:05
我有一个包含 6 列的列表视图。如何更改最后一个文本?
以下是完整的代码:
string clientdata = Encoding.Default.GetString(data);
string[] str = clientdata.Split('~');
listView1.Items[i].SubItems[2].Text = str[0];
listView1.Items[i].SubItems[3].Text = str[1];
listView1.Items[i].SubItems[4].Text = str[2];
listView1.Items[i].SubItems[5].Text = str[3]; // Error here
break;
但是我得到错误:
InvalidArgument
值"5"对"索引"无效。
你可以这样做:
listView1.Items[i].SubItems[listView1.Items[i].SubItems.Count - 1].Text
或者使用 Linq 的 Last
扩展方法:
listView1.Items[i].SubItems.Cast<ListViewSubItem>().Last().Text
来自 MSDN:
ListViewItem.ListViewSubItemCollection 中的第一个子项是 始终是拥有子项的项。在 上执行操作时 集合中的子项,请确保引用索引位置 1 而不是 0 对第一个子项进行更改。
所以第一个子项目是subItem[1]
的,所以它应该是:
string clientdata = Encoding.Default.GetString(data);
string[] str = clientdata.Split('~');
listView1.Items[i].SubItems[1].Text = str[0];
listView1.Items[i].SubItems[2].Text = str[1];
listView1.Items[i].SubItems[3].Text = str[2];
listView1.Items[i].SubItems[4].Text = str[3];
break;
假设您有 x 列:
ListviewItem.SubItems[0]
表示第一列
ListviewItem.SubItems[1]
表示第二列
ListviewItem.SubItems[x-1]
表示最后一列