我有这段代码:
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”。我不知道为什么。
答案 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