2

如何将换行符(\n)放入列表框 .selected 项?在这里,我有生成所有链接的代码,但我想在列表框中包含所有这些链接,这些代码正在工作,但链接没有出现在新行中,所有链接都在单行中,我的代码是:

var links = TextBox1.Text.Split(new string[] { "\n", "\r" }, 
StringSplitOptions.RemoveEmptyEntries);

  foreach (var link in links)
        {
            if (!IsLinkWorking(link))
            {
                //Here you can show the error. You don't specify how you want to show it.
                TextBox2.ForeColor = System.Drawing.Color.Green; 
               TextBox2.Text += string.Format("{0}\nNot working\n\n ", link);
                //ListBox1.SelectedItem+= string.Format("{0}\nNot working\n\n ", link);
            }
            else
            {
               // ListBox1.SelectedValue += string.Format("{0}\nNot working\n\n ", link);
                TextBox2.Text += string.Format("{0}\n working\n\n", link);
            }

string[] values = TextBox2.Text.Split(',');

foreach (string value in values)
{
   if (value.Trim() == "")
       continue;
   ListBox1.Items.Add(value.Trim());    
       }
    }
}
4

4 回答 4

2

您可以使用 Regex.Split 将字符串拆分为多行,如下所示:

foreach (string s in Regex.Split(TheStringwithNewLines, "\n"))
ListBox.Items.Add(s); 
于 2013-03-12T06:22:04.157 回答
1

您的代码应该可以正常工作,我只能怀疑您没有正确拆分字符串,您确定,您的字符串中有分隔符吗,因为只有这样您才能在一行中看到所有项目,因为 split 只会产生一个物品

只需尝试示例代码,它将在多行中添加项目。

string str = "somelink1,somelink2,somelink3";
string[] values = str.Split(',');

foreach (string value in values)
{
    if (value.Trim() == "")
        continue;
    ListBox1.Items.Add(value.Trim());
}

现在,如果由于某种原因您以 string 结尾"somelink1 somelink2 somelink3",而没有逗号作为分隔符,您将在数组中得到一个字符串,并将出现在一行中。

编辑:根据您编辑的问题。你正在添加\n,然后你试图用逗号分割它,你的分割语句应该是:

string[] values = TextBox2.Text.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
于 2013-03-12T06:32:00.433 回答
0

试试看是否有类似 Listbox.Items.Row

或者

ListBox.Items.Add(value.Trim() + "<BR />");
于 2013-03-12T06:17:02.223 回答
0

我想你可以使用这个代码

于 2013-03-12T06:20:59.013 回答