文本框多行在winforms应用程序

本文关键字:winforms 应用程序 文本 | 更新日期: 2023-09-27 18:15:33

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

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

但是我得到一行即使我把文本框改成multiline:

如何解决这个问题?

文本框多行在winforms应用程序

使用Environment.NewLine

textbox.Multiline = true;
textbox.Text += "a" + Environment.NewLine + "b";

对于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()也可用于在合并多个行时添加行。

正如Brian所说,你需要CRLF,这意味着:

textBox2.Text += "a";
textBox2.Text += "'r'n";
textBox2.Text += "b";

但是正如Amir正确地说的,Environment.NewLine也可以做到这一点,你不必为"如何表示换行符"而烦恼。