Vb.net 如何在VisualBasic中将两个不同列表框中的项目添加到文本框的一行中?
我是一个初学者,我正在尝试做一个程序,它将项目及其成本(由用户输入)组织在两个列表框中。一个ObjectList和一个PriceList。我试图做的是将列表框项目转换为文本框,从而允许我将其保存在文本文件中(或者至少使其更容易)。这是负责“文本化”列表框的代码Vb.net 如何在VisualBasic中将两个不同列表框中的项目添加到文本框的一行中?,vb.net,Vb.net,我是一个初学者,我正在尝试做一个程序,它将项目及其成本(由用户输入)组织在两个列表框中。一个ObjectList和一个PriceList。我试图做的是将列表框项目转换为文本框,从而允许我将其保存在文本文件中(或者至少使其更容易)。这是负责“文本化”列表框的代码 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click For i = 0 To ObjectList.Selecte
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。您的代码有一些问题:
- 您应该使用
而不是ObjectList.Items
ObjectList.SelectedItems
- 您应该使用
而不是.Count-1
,因为最后一项的索引=.Count
(因为第一个索引是0)。请注意,Items.Count-1
将抛出一个ObjectList.Items(ObjectList.Count)
IndexOutOfRangeException
- 解决上述两个问题后,您将只看到文本框中的最后一行,这是因为您正在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
和PriceList
的项目,因此需要确保它们的项目数相同。Basic、VBA和VB.NET是三种不同的语言。请不要使用多余的标签。非常感谢!我这样做的目的是,如果你有价格,你只能添加一个对象,反之亦然。