我正在開發一個程序,我正在使用包含一些\n
的字符串(generatedCode
)在我正在使用它的文本框(textBox1.Text = generatedCode
)中輸入一個新行,但是當我運行該程序時,不是打破這條線,而是看到一個正方形。如何使用 n在文本框中
請記住,我已將文本框的Multiline
值設置爲True
。
我正在開發一個程序,我正在使用包含一些\n
的字符串(generatedCode
)在我正在使用它的文本框(textBox1.Text = generatedCode
)中輸入一個新行,但是當我運行該程序時,不是打破這條線,而是看到一個正方形。如何使用 n在文本框中
請記住,我已將文本框的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的(因爲它是Windows GUI控制的端口)?在MSDN 中的一個例子是使用Environment.NewLine
,但是現在我已經在MSDN中看到了可怕的錯誤示例,並且文檔沒有說明應該是哪個。
在一個理想的世界裏,我們只希望有一個行分隔符 - 甚至在第二個最好的世界,每一種情況會清楚地界定哪些行分隔符它期待......
通常\r\n
讓我一個換行符在文本框中。試試你的\n
與\r\n
更換隻是要小心你沒有的\r\n
和\n
好點!只要確保textBox1.Text = generatedCode.Replace(「\ r \ n」,「\ n」);得到任何現有的然後做textBox1.Text = generatedCode.Replace(「\ n」,「\ r \ n」); Winform仍然很棒! – 2016-12-02 09:18:33
混合添加一個回車(\ r)和它應該工作:
TextBox1.Text = "First line\r\nSecond line";
因爲使用\ n是容易(特別是當格式化),有時你不控制如何構建源字符串 - 我發現最佳做法是使用:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);
基本上是一樣的事情,但它可能更安全使用環境.N ewLine而不是\ r \ n,我想。 – jean 2009-11-17 20:08:30
嗯,問題 - 應該「\ r \ n」是System.Environment.NewLine?我明白它們是相同的(ish),它更像是一種編碼標準類型的問題 – Murph 2009-11-17 20:09:48
鑑於「.NET」並不意味着「Windows」,我會非常贊同使用「System.Environment.NewLine」。 – qid 2009-11-17 20:12:21