vb.net - 获取列表视图子项的文本
问题描述
我正在尝试在 vb.net 中获取 ListView 子项的文本。根据这个答案,下面的代码应该可以工作。
Function gen() As String
Dim Log = New Logging.Log("gen")
Dim Code As String = getTemplateCode()
For Each i As ListViewItem In ListView1.Items
Log.WriteEntry("Item: " + i.Text)
If i.SubItems.Count > 0 Then
Log.WriteEntry("Item: " + i.SubItems(0).Text)
Code = Code.Replace(i.Text, i.SubItems(0).Text)
End If
Next
Return Code
End Function
但是,ListViewItem.SubItem.Text
我没有得到字符串,而是得到了似乎是的ListViewItem.Text
,并且无法弄清楚为什么。
这是上述代码的实际日志输出:
gen Information: 0 : Item: $Parshah$
gen Information: 0 : Item: $Parshah$
gen Information: 0 : Item: $Year$
gen Information: 0 : Item: $Year$
gen Information: 0 : Item: $EnglishId$
gen Information: 0 : Item: $EnglishId$
gen Information: 0 : Item: $books$
gen Information: 0 : Item: $books$
gen Information: 0 : Item: $title$
gen Information: 0 : Item: $title$
和列表视图的屏幕截图
日志输出应该是
gen Information: 0 : Item: $Parshah$
gen Information: 0 : Item: nothing
gen Information: 0 : Item: $Year$
gen Information: 0 : Item: nothing
gen Information: 0 : Item: $EnglishId$
gen Information: 0 : Item: nothing
gen Information: 0 : Item: $books$
gen Information: 0 : Item: nothing
gen Information: 0 : Item: $title$
gen Information: 0 : Item: nothing
我究竟做错了什么?
解决方案
好的。愚蠢的错误。一项研究告诉我,ListViewItem 在其第一个子项中包含自身,并且第一个动态添加的子项以 1 而不是 0 的索引开始。(哎呀。)想想批处理参数,其中 %~0 是文件本身......哈哈。
所以,我们改变这样的代码:
Function gen() As String
Dim Log = New Logging.Log("gen")
Dim Code As String = getTemplateCode()
For Each i As ListViewItem In ListView1.Items
Log.WriteEntry("Item: " + i.Text)
If i.SubItems.Count > 0 Then
Log.WriteEntry("Item: " + i.SubItems(1).Text) 'changed 0 to 1
Code = Code.Replace(i.Text, i.SubItems(1).Text) 'changed 0 to 1
End If
Next
Return Code
End Function
推荐阅读
- reactjs - 选择值时未触发 OnChange
- java - spring boot 包含配置
- typescript - Nestjs HealthCheck 装饰器签名
- javascript - Ajax 调用未收到先前会话命中的响应
- postgresql - Spring批处理ItemWriter异常正在杀死工作
- python - 在 Python 中使用 RegEx 提取字符串部分(列表的元素)
- powershell - unix 命令“Uniq -c”的 Powershell 等效项
- node.js - 运行远程 SSH 命令时如何配置远程 PATH?
- mysql - 需要排除多条记录的数据
- oracle - 如何在没有网线的情况下连接到同一台机器上VM中的数据库?