如何获取 ListView.SubItems



我正在尝试制作一个程序,根据用户输入将文本输入到文档中,我目前正在将其显示为ListView。

我不知道如何从该项目中获取子项,因为这是我当前的代码。

For Each item In ListView1.Items
Dim inputString72 As String = "@bot.command()" + vbNewLine
My.Computer.FileSystem.WriteAllText(
SaveFileDialog1.FileName, inputString72, True)
Dim inputString73 As String = "async def " + item.Text + "(ctx):" + vbNewLine
My.Computer.FileSystem.WriteAllText(
SaveFileDialog1.FileName, inputString73, True)
Dim inputString74 As String = "    await ctx.send('" + THE SUBITEM OF THE ITEM GOES HERE + "')" + vbNewLine
My.Computer.FileSystem.WriteAllText(
SaveFileDialog1.FileName, inputString74, True)
Next

我认为使用 .net File 类会更有效。 无需在每次迭代中多次调用该方法。从文档中。"WriteAllText 方法打开一个文件,写入该文件,然后关闭它。" 这是很多打开和关闭。使用StringBuilder(可变(构建一个字符串,然后写入文件一次。

我使用了内插字符串(它前面有一个 $(,它允许您将变量直接放在用大括号括起来的字符串中。

SubItem索引从 0 开始,第一列。SubItem.Text属性将返回其内容。

Private Sub WriteListViewToFile(FilePath As String)
Dim sb As New StringBuilder
For Each item As ListViewItem In ListView1.Items
sb.AppendLine("@bot.command()")
sb.AppendLine($"async def {item.Text}(ctx):")
sb.AppendLine($"    await ctx.send('{item.SubItems(1).Text}')")
Next
File.WriteAllText(FilePath, sb.ToString)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
WriteListViewToFile(SaveFileDialog1.FileName)
End If
End Sub