2009-11-17 77 views
18

我正在開發一個程序,我正在使用包含一些\n的字符串(generatedCode)在我正在使用它的文本框(textBox1.Text = generatedCode)中輸入一個新行,但是當我運行該程序時,不是打破這條線,而是看到一個正方形。如何使用 n在文本框中

請記住,我已將文本框的Multiline值設置爲True

回答

41

替換\ 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中看到了可怕的錯誤示例,並且文檔沒有說明應該是哪個。

在一個理想的世界裏,我們只希望有一個行分隔符 - 甚至在第二個最好的世界,每一種情況會清楚地界定哪些行分隔符它期待......

+2

基本上是一樣的事情,但它可能更安全使用環境.N ewLine而不是\ r \ n,我想。 – jean 2009-11-17 20:08:30

+0

嗯,問題 - 應該「\ r \ n」是System.Environment.NewLine?我明白它們是相同的(ish),它更像是一種編碼標準類型的問題 – Murph 2009-11-17 20:09:48

+0

鑑於「.NET」並不意味着「Windows」,我會非常贊同使用「System.Environment.NewLine」。 – qid 2009-11-17 20:12:21

6

通常\r\n讓我一個換行符在文本框中。試試你的\n\r\n更換隻是要小心你沒有的\r\n\n

+0

好點!只要確保textBox1.Text = generatedCode.Replace(「\ r \ n」,「\ n」);得到任何現有的然後做textBox1.Text = generatedCode.Replace(「\ n」,「\ r \ n」); Winform仍然很棒! – 2016-12-02 09:18:33

4

混合添加一個回車(\ r)和它應該工作:

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

因爲使用\ n是容易(特別是當格式化),有時你不控制如何構建源字符串 - 我發現最佳做法是使用:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);

相關問題