winforms应用程序中的TextBox MultiLine

时间:2014-07-30 15:26:54

标签: c# .net string winforms escaping

如何在winforms应用程序的文本框中插入新行:

 textBox2.Text += "a";
 textBox2.Text += "\n";
 textBox2.Text += "b"; 

但是我得到了一行,即使我使文本框多行:

如何解决此问题?

3 个答案:

答案 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也可以做到这一点,你不必费心去理解“换行符的表现方式”。