gpt4 book ai didi

vb.net - 如何通过名称而不是索引来引用 ListView 子项?

转载 作者:行者123 更新时间:2023-12-02 22:36:03 25 4
gpt4 key购买 nike

我一直对下面的代码感到疑惑:

ListView1.View = View.Details   
ListView1.Columns.Add("c1")
ListView1.Columns.Add("c2")
Dim Item As New ListViewItem
Item.Text = "1"
Item.SubItems.Add("2")
ListView1.Items.Add(Item)

'MsgBox(ListView1.Items(0).SubItems("c1").Text) 'this is wrong  
MsgBox(ListView1.Items(0).SubItems(0).Text) 'this is right

我想要一种通过名称引用列的方法,因为它更具可读性,并减少出错的机会。但是,该程序不会生成。有什么想法吗?

最佳答案

您可以为 ListViewSubItem 指定名称并通过该名称引用子项:

Dim subItem As New ListViewItem.ListViewSubItem
subItem.Name = "c1"
subItem.Text = "SubItem"
Item.SubItems.Add(subItem)

如果您以这种方式添加子项,MsgBox(ListView1.Items(0).SubItems("c1").Text) 将起作用。

更新:

不幸的是,这不适用于第一个子项目。要解决此问题,您可能需要在 ListViewItem 之前创建所有子项(包括默认项):

Dim subItems As ListViewItem.ListViewSubItem() = New ListViewItem.ListViewSubItem(2 - 1) {}
subItems(0) = New ListViewItem.ListViewSubItem()
subItems(0).Name = ListView1.Columns(0).Text
subItems(0).Text = "Default SubItem"
subItems(1) = New ListViewItem.ListViewSubItem()
subItems(1).Name = ListView1.Columns(1).Text
subItems(1).Text = "SubItem 1"
Dim Item As New ListViewItem(subItems, 0)
ListView1.Items.Add(Item)

关于vb.net - 如何通过名称而不是索引来引用 ListView 子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com