我正在开发一个程序,我正在使用包含一些generatedCode
的字符串(\n
)来在我正在使用它的textBox中输入换行符({{1但是,当我正在运行程序时,我没有打破那条线,而是看到了一个正方形。
请记住,我已将textBox的textBox1.Text = generatedCode
值设置为Multiline
。
答案 0 :(得分:44)
用\ r \ n替换\ 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中看到过可怕的错误示例,文档中没有说明应该是什么。
在一个理想的世界中,我们只有一个行分隔符 - 即使在第二个最好的世界中,每种情况都会明确定义它所期望的行分隔符......
答案 1 :(得分:7)
因为使用\ n在眼睛上更容易(特别是在格式化时),有时你也无法控制源字符串的构造方式 - 我发现最佳做法是使用:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);
答案 2 :(得分:6)
通常\r\n
会在文本框中为我提供换行符。尝试将\n
替换为\r\n
,请注意不要混合使用\r\n
和\n
答案 3 :(得分:4)
添加回车符(\ r \ n),它应该有效:
TextBox1.Text = "First line\r\nSecond line";