2011-02-26 23 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