如何使用\ n在TextBox中

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

请记住,我已将textBox的Multiline值设置为True

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

 textBox1.Text = generatedCode.Replace("\n", "\r\n"); 

要么

 textBox1.Text = generatedCode.Replace("\n", Environment.NewLine); 

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

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

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

通常\r\n在文本框中给我一个换行符。 尝试用\r\n替换你的\n ,小心你没有\r\n\n

添加回车符(\ r),它应该工作:

 TextBox1.Text = "First line\r\nSecond line";