如何在VisualBasic中将2个不同列表框中的项添加到文本框的单行?

时间:2018-05-20 10:34:22

标签: vb.net

我是一个初学者,我正在尝试一个程序,它接受项目和成本(用户输入),并将它们组织在两个列表框中。 ObjectList和PriceList。我要做的是将列表框项目转换为文本框,从而允许我将其保存在文本文件中(或至少使其更容易)。这是负责“列出”列表框的代码。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 
Button3.Click

    For i = 0 To ObjectList.SelectedItems.Count
        RichTextBox1.Clear()
        RichTextBox1.Text &= (ObjectList.Items(i) & " - " & PriceList.Items(i) & vbNewLine)
    Next

End Sub

我的问题是文本框只显示第一行项目。 例如,如果列表框在第一行显示Computer和1000,在第二行显示Paper和3,则它只显示Computer - 1000。

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题:

  • 您应该使用ObjectList.Items代替ObjectList.SelectedItems
  • 您应该使用.Count - 1而不是.Count,因为最后一项的索引= Items.Count - 1(因为第一个索引为0)。请注意,ObjectList.Items(ObjectList.Count)会抛出IndexOutOfRangeException
  • 一旦解决了上述两个问题,您就会在文本框的最后一行看到 ,因为您正在调用{{1}在For循环中,强制RichTextBox1.Clear()在每次迭代时清除其内容。你应该把那条线移到循环外面(上方)。

所以,你的代码应该是这样的:

RichTextBox1

最后一件事:由于您使用相同的索引访问Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click RichTextBox1.Clear() For i = 0 To ObjectList.Items.Count - 1 RichTextBox1.Text &= ObjectList.Items(i) & " - " & PriceList.Items(i) & vbNewLine Next End Sub ObjectList的项目,因此您需要确保它们具有相同数量的项目。