Listbox1以相同的格式将所有项添加到richtextbox

时间:2014-08-29 03:39:41

标签: vb.net visual-studio-2012 listbox richtextbox loading

我试图获取所有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

4 个答案:

答案 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()