使用\ n作为行终止符时,为什么c#textbox.AppendText()换行符会消失?

时间:2010-11-05 09:41:07

标签: c# textbox multiline

我正在使用多行文本框,而我得到的行为我无法完全解释。我用

 textbox.AppendText("line \n"); 

将新行附加到文本框。当使用这3次时,我得到了

line 
line 
line

显示在文本框中。现在,我调整文本框的大小。文字成为

line line line 

也就是说,新行消失了。我知道我应该使用

 textbox.AppendText("line "+ Environment.Newline);

所以我知道如何解决这个问题。我想知道为什么,当使用“\ n”时,新行最初会出现,但在调整大小时会消失。

2 个答案:

答案 0 :(得分:3)

在调整大小时,会删除“\ n”字符,因为调整大小也会根据“\ n”控制新行的创建和删除,System.Env.NewLine永远不会被省略。

答案 1 :(得分:3)

而不是看起来像这样的一行:

textbox.AppendText("line \n"); 

你应该使用这一行:

textbox.AppendText("line "+ Environment.NewLine);

这是因为unix的换行符是\n,但对于非unix(即Windows),它是\r\n。调整框大小后,系统换行符将被替换,因此如果您只有\n,则会在调整大小时丢失。

参考: MSDN: Environment.NewLine Property