如何通过Key访问ListView子项?

时间:2010-09-22 16:37:59

标签: .net vb.net listview

我正在尝试使用列标题名称从列表视图访问数据但我收到错误

LVProduct.FocusedItem.SubItems("Name").Text

那么,如何将该函数与字符串参数一起使用?我不想使用索引太混乱了

4 个答案:

答案 0 :(得分:13)

如果您想要根据列获取SubItem,这是最简单的方法。

LVProduct.FocusedItem.SubItems(columnHeader1.Index).Text 

columnHeader1将是您想要SubItem的ColumnHeader的名称。

答案 1 :(得分:8)

创建子项时,必须将Name属性设置为它所在的列的属性。

[...] accessor在ListViewSubItem类中查找Name字段。

如果没有该设置,您执行的[“Name”]。文本操作将返回空指针类型错误。

或者,换句话说,按键搜索不会按列名搜索。 它会根据您在创建子项时在SubItem.Name中设置的值进行搜索。

答案 2 :(得分:2)

创建子项时,需要设置name属性。例如:

listViewItem.SubItems.Add(
    New ListViewSubItem With {.Name = "Name", .Text = "yes"}
)

然后您可以使用现有代码:

LVProduct.FocusedItem.SubItems("Name").Text

答案 3 :(得分:-1)

你应该使用c#“indexer”。你必须使用方括号调用:

LVProduct.FocusedItem.SubItems["Name"].Text

如果您想了解有关索引器的更多信息,请查看this link on MSDN