2011-02-26 68 views
1

我有一个接受输入的WinForm上的文本框(多行)。这是我创建的一个对象的数据绑定。当我键入:C#如何通过数据绑定保留换行符?

"hello 
world" 

我看到在我的对象的值是“你好\ r \ nworld”,符合市场预期。但是当我离开对象并在以后重新绑定时,文本字段就会“helloworld”全部聚集起来。当我再次看场时,它是“hello \ nworld”。 \ r被剥离了一些如何。

\ r在数据绑定过程中去了哪里?我能做些什么来确保它保持?

+0

邮摄制代码。 – 2011-02-26 02:00:47

+0

AHA!我发现它......当我将它序列化并将它带回(因此我如何“重新绑定”......我将保存该文件并重新打开它),换行符被搞砸了。我已经完成了一百万次序列化,所以我只是假定它是在绑定中。我已经证明它是在序列化的一块! – Jerry 2011-02-26 02:13:24

回答

1

\r\n指的十六进制代码0xD 0xA和(仅在Windows)表示新行的指令,我想,当你的数据绑定文本内容\r\n被转换成它的通用一个\n,这就是为什么你得到它为helloworld作为显示的文本,并且hello\rworld作为数据,但它不会作为新行处理,因为它仅提供\r Carriage Return指令,而不提供\n Line Feed指令。

我认为你可以使用

Environment.NewLine 

解决您的问题。

-1
("hello\r\nplagiarism world").Replace("\r\n", Environment.NewLine) 

编辑

+1

你正在用'Environment.NewLine'替换字符串'hello \ r \ nplagiarism world'吗? – 2011-02-26 04:51:12