在列表框项目之间添加文本
Posted
技术标签:
【中文标题】在列表框项目之间添加文本【英文标题】:Adding text between listboxes items 【发布时间】:2015-12-16 14:52:01 【问题描述】:我正在使用 vb.net 表单。
我有 8 个列表框(listbox1、listbox2、listbox3..),每个列表框包含许多项目和另一个空列表框(listbox10)。我正在尝试将第一个列表框项目添加到列表框10
ex: ) listbox1 第一个项目是 'A' , listbox2 第一个项目是 'b' , listbox3 第一个项目是 'c'...等。现在 listbox10 第一项必须是“Abc...”
问题是我想在每个列表框之间添加文本(字符串或数字)
ex:)listbox1 第一项是 'A' , listbox2 第一项是 'b' , listbox3 第一项是 'c'...etc 。现在我希望 listbox10 第一项是“字母 ABC 现已完成”
主要思想是结合所有列表框项目并在它们之间添加文本以创建有意义的句子
这是我的代码
Dim controls = New List(Of ListBox)() From _
ListBox1, ListBox2, ListBox3, ListBox4, ListBox5, ListBox6, ListBox7, ListBox8
Dim minCount = Controls.Min(Function(x) x.Items.Count)
For x = 1 To minCount - 1
ListBox10.Items.Add(String.Join(" ", controls.Select
(Function(lb) lb.Items(x).ToString)))
Next
End Sub
我必须在哪里添加我的(字符串)?
【问题讨论】:
您说“在每个列表框之间”,但您的示例“字母是 ABC”只是将文本放在字符串前面。不清楚你想用那个例子做什么。如果您只需要前导文本:ListBox10.Items.Add("The letters is " & String.Join(...
@LarsTech 不,这只是示例先生.. 我想在不同位置的每个列表框之间添加很多不同的文本
现在您只需要字母前后的文字吗?我试图弄清楚字母之间发生了什么......
例如 listbox1 第一个项目是 'A' , listbox2 第一个项目是 'b' , listbox3 第一个项目是 'c'...等。现在我希望 listbox10 第一项是“字母 A 是 B 现在完成 C 之前的字母”
如果项目之间的文本不同,那么您将不得不丢失 string.join 并循环遍历您的列表框集合。你的for循环错了,顺便说一句,它应该是0 to minCount - 1
【参考方案1】:
由于您想在列表框项之间放置不同的文本,您必须删除 String.Join 函数并自己循环遍历列表框:
Dim sb As New StringBuilder
For i As Integer = 0 To controls.Count - 1
For j As Integer = 1 To minCount - 1
sb.Append(controls(i).Items(j).ToString)
Next
If i < controls.Count - 1 Then
sb.Append(" " & i.ToString & " ")
End If
Next
ListBox10.Items.Add(sb.ToString)
【讨论】:
感谢您的支持,但是在哪里添加我的列表框?以及在每个列表框之前或之后添加自定义文本的位置?? @bod 您的控件数组已经包含列表框,所以我使用了您的示例。用您想要的任何文本替换sb.Append(" " & i.ToString & " ")
行。我还不清楚你在那里做什么。
我的意思是,如果使用相同的示例,我想在 listbox1 之前添加“hi”,在 listbox4 之前添加“hello”,在 listbox7 之后添加“please”……等等……主要思想是结合所有列表框项目并在它们之间添加文本以创建有意义的句子
@bod 您可以在循环中添加Select Case i
,并为每个循环添加文本。或者为每个 ListBox 创建另一个“句子”数组。但你最好摆脱控制循环,为每个 ListBox 创建句子。
你能添加一个简单的例子来说明如何在循环中插入选择案例吗?以上是关于在列表框项目之间添加文本的主要内容,如果未能解决你的问题,请参考以下文章