如何在文本框中使用\n

Nat*_*pos 24 c# string newline

我正在开发一个程序,我正在使用一个字符串(generatedCode)包含一些\n在我正在使用它的textBox中输入换行符(textBox1.Text = generatedCode),但是当我运行程序时,而不是破坏该行我正在看一个正方形.

请记住,我已将MultilinetextBox 的值设置为True.

Jon*_*eet 48

将\n替换为\ r \n - 这就是Windows控件表示换行符的方式(但请参阅底部的注释):

textBox1.Text = generatedCode.Replace("\n", "\r\n");
Run Code Online (Sandbox Code Playgroud)

要么

textBox1.Text = generatedCode.Replace("\n", Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)

注意:正如评论中所讨论的,您可能希望使用Environment.NewLine.但目前还不清楚 - 它没有明确定义Windows窗体控件在Windows上不运行时应使用的行分隔符.他们应该使用平台默认设置还是Windows平台(因为它是Windows GUI控件的端口)?MSDN 中的一个例子确实使用了Environment.NewLine,但是我之前在MSDN 看到了可怕的错误示例,文档只是没有说明应该是什么.

在理想的世界中,我们只有一个行分隔符 - 即使在第二个最好的世界中,每种情况都会清楚地定义它所期望的行分隔符......

  • 基本上是相同的,但我认为使用Environment.NewLine而不是\ r \n可能更安全. (2认同)

dan*_*r42 8

因为使用\n在眼睛上更容易(特别是在格式化时),有时你也无法控制源字符串的构造方式 - 我发现最佳做法是使用:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);


Bob*_*Bob 6

通常\r\n会在文本框中为我添加换行符.尝试更换您\n\r\n只是要小心你没有的混合\r\n\n