【问题标题】:C# How do I preserve a newline through a databind?C# 如何通过数据绑定保留换行符?
【发布时间】:2011-02-26 01:50:25
【问题描述】:

我在接受输入的 WinForm 上有一个文本框(多行)。它数据绑定到我创建的对象。当我输入时:

"hello
world"

我看到我的对象中的值是“hello\r\nworld”,正如预期的那样。但是当我离开该对象并稍后再次重新绑定时,文本字段中的“helloworld”全部聚集在一起。当我再次查看该字段时,它是“hello\nworld”。 \r 被剥离了一些。

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

【问题讨论】:

  • 啊哈!我找到了它......当我将它序列化并带回来(因此我是如何“重新绑定”......我会保存文件并重新打开它)时,换行符被搞砸了。我已经完成了一百万次序列化,所以我只是假设它在绑定中。我已经证明它在连载片段中!

标签: c# winforms data-binding


【解决方案1】:

\r\n 表示十六进制代码 0xD 0xA 并且(仅在 Windows 中)表示新行指令,我认为,当您将文本内容 \r\n 数据绑定时,它会转换为其通用的 \n,这就是为什么你把它作为显示文本的helloworldhello\rworld 作为数据,但它不会作为新行处理,因为它只提供\r Carriage Return 指令而不是\n Line Feed指令。

我认为你可以使用

Environment.NewLine

解决您的问题。

【讨论】:

    【解决方案2】:
    ("hello\r\nplagiarism world").Replace("\r\n", Environment.NewLine)
    

    ?

    已编辑

    【讨论】:

    • 您是否将字符串 hello\r\nplagiarism world 替换为 Environment.NewLine
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2012-09-06
    • 2013-07-08
    相关资源
    最近更新 更多