我试图获取所有ListBox1
项并让它们转到RichTextBox1
。我希望它的格式与ListBox1
中的格式相同。我尝试了不同的代码,他们似乎在项目之间留出了额外的空白行。到目前为止,我已经想到了这一点,但它给了额外的空白。
Dim counter As String
counter = ListBox1.Items.Count - 1
ListBox1.SelectedIndex = 0
If ListBox1.SelectedIndex = 0 Then
Do Until ListBox1.SelectedIndex = counter
ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
RichTextBox1.Text = RichTextBox1.Text & vbNewLine & ListBox1.SelectedItem
Loop
End If
答案 0 :(得分:0)
这是,因为最初richtextbox为空。因此,RichTextBox1.Text = RichTextBox1.Text & vbNewLine & ListBox1.SelectedItem
将首先添加New Line
并将列表的第二个元素添加到richtextbox,这是因为您在添加到richtexbox之前将所选索引值增加1 。因此,您的代码可以按照以下方式有效使用:
Dim counter As Integer = ListBox1.Items.Count - 1
ListBox1.SelectedIndex = 0
If ListBox1.SelectedIndex = 0 Then
Do Until ListBox1.SelectedIndex = counter
RichTextBox1.Text = RichTextBox1.Text & ListBox1.SelectedItem & vbNewLine
ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
Loop
End If
答案 1 :(得分:0)
使用LINQ
选择所有项目并加入Environment.NewLine
:
.Net> = 4.0
Me.RichTextBox1.Text = String.Join(Environment.NewLine, (From item As Object In Me.ListBox1.Items Select Me.ListBox1.GetItemText(item).Trim()))
.Net> = 3.5
Me.RichTextBox1.Text = String.Join(Environment.NewLine, (From item As Object In Me.ListBox1.Items Select Me.ListBox1.GetItemText(item).Trim()).ToArray())
答案 2 :(得分:0)
您在添加ListBox文本之前添加了一个vbNewLine ...您应该将其放在行RichTextBox1.Text = RichTextBox1.Text & ListBox1.SelectedItem & vbNewLine
的末尾,并且您也不应该增加所选索引值,直到您添加线...
或者,你可以这样做..
For i = 0 To ListBox1.Items.Count - 1
RichTextBox1.Text = RichTextBox1.Text & ListBox1.Items(i) & vbCrLf
Next
或者这个SO问题有一些使用LINQ和精简查询代码的好例子...... passing all the items of listbox in the richtextbox
答案 3 :(得分:0)
尝试使用streamwriter和writeline()将列表框保存到文件中,然后使用streamreader和readtoend()将其打开到文本框中
'assuming you have the default names
dim reader As streamreader, writer As streamwriter
writer = new streamwriter("TMP")
for each x as object in listbox1.items
writer.writeline(X)
next
writer.close()
reader=new streamreader("TMP")
textbox1.text=reader.readtoend()
reader.close()