通过在Winform中使用Split,我的代码出了问题

时间:2016-10-01 13:05:55

标签: c# winforms

我有这段代码:

private void Form1_Load(object sender, EventArgs e)
{
    string s="hello\amynameis\alam";
    string[] arr = s.Split('\a');
    foreach (string str in arr)
    {
        textBox1.Text = str + "\n";
    }
}

我希望输出为:

hello  
mynameis  
lam  

但它只在textBox1中显示“lam”。我不知道为什么。

1 个答案:

答案 0 :(得分:7)

您的错误源自for循环,您可以在其中将文本框的text属性设置为当前项。当然,这会以您的文本框结束,只显示数组的最后一项。

您可以使用string.Join构建多行字符串,但请记住将TextBox的Multiline属性设置为true以允许文本框显示多行

string s="hello\amynameis\alam";
string[] arr = s.Split('\a');
//textBox1.Text = string.Join("\r\n", arr);
textBox1.Text = string.Join(Environment.NewLine, arr);

您甚至可以通过简单的替换

修剪代码中的一行
t.Text = s.Replace("\a", Environment.NewLine);

另请注意,仅\n字符不足以在文本框中创建换行符。您还需要添加\r或更好Environment.NewLine