如何在winforms应用程序的文本框中插入新行:
textBox2.Text += "a";
textBox2.Text += "\n";
textBox2.Text += "b";
但是我得到了一行,即使我使文本框多行:
如何解决此问题?
答案 0 :(得分:5)
使用Environment.NewLine
textbox.Multiline = true;
textbox.Text += "a" + Environment.NewLine + "b";
答案 1 :(得分:1)
对于Windows操作系统,您应该为新行编写\r\n
。
对于Mac OS,您应该只使用\n
。
Environment.NewLine
适用于两种操作系统。因此,您可以使两个平台的代码都通用。因此,在为两个操作系统创建应用程序代码时,请避免字符串中的\n
和\r\n
。
在您的情况下,您可以使用String.Format
来避免多次连接,这会在长时间使用时降低性能。
textBox2.Text = String.Format("ABCD{0}XYZ", Environment.NewLine);
如果你连接一堆行,那么有更好的方法来做到这一点。您可以使用StringBuilder
类。
StringBuilder sb = new StringBuilder();
foreach(string line in Lines)
{
sb.AppendLine(line);
//or
//sb.AppendFormat("My line: {0}{1}", line, Environment.NewLine);
}
textBox2.Text = sb.ToString();
当您组合多个行时, StringBuilder.AppendLine()
也可用于添加行。
答案 2 :(得分:0)
正如Brian所说,你需要CRLF,这意味着:
textBox2.Text += "a";
textBox2.Text += "\r\n";
textBox2.Text += "b";
但正如阿米尔所说的那样,Environment.NewLine
也可以做到这一点,你不必费心去理解“换行符的表现方式”。