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

问题描述 投票:7回答:2

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

 textbox.AppendText("line \n"); 

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

line 
line 
line

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

line line line 

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

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

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

c# textbox multiline
2个回答
3
投票

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


3
投票

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

textbox.AppendText("line \n"); 

你应该使用这一行代替:

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

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

参考:MSDN: Environment.NewLine Property

© www.soinside.com 2019 - 2024. All rights reserved.