【发布时间】:2015-07-28 15:18:55
【问题描述】:
我已经建立了一个用于创建工单的表单。 消息文本起初在一个 Richtextbox 中。 LongText 在 webrequest 中作为字符串发送。 由于我从三个 Richtextboxes 构建长文本,因此换行符(并且只有换行符)的格式被破坏了。
现在我已将其更改为三个框: - 第一个带有问候语的 - 长文本的主要内容 - 最后一个带有“Best Regards”短语
表单如下所示:
问题: 创建我想要传递的字符串会导致我的最终字符串格式不正确,我不知道为什么。
我像这样构建我的最终字符串:
Dim MyFinstr as string = RTB1.text & vbnewline &
vbnewline & RTB2.text & vbnewline & vbnewline & RTB3.text
我的最终字符串应该如下所示:
Hello mr Test,
long text 1
longtext line2
long ipsum
Best Regards
Mr Blaze
相反,它总是看起来像这样:
Hello mr Test,
long text 1
longtext line2
long ipsum
Best Regards
Mr Blaze
所以 - 不知何故 - 当字符串由 3 个 Richtexboxes 的文本构建时,它会中断。
现在是最令人困惑的部分: 如果我不将richtextboxes 中的内容分配给字符串并执行 this
AnoterRichtextbox.text = RTB1.text & vbnewline &
vbnewline & RTB2.text & vbnewline & vbnewline & RTB3.text
Dim MyFinstr as String = AnoterRichtextbox.text
然后字符串很好,最后有换行符。
我的 dirty workaround 是一个不可见的第四个富文本框,它可以将我的字符串转换为看起来不错。但我真的不明白为什么会这样。
如果我将它复制到剪贴板并在带有换行符的 Notepad++ 中查看,字符串看起来是一样的。但是 - 最后 - 由 webrequest 生成的票证破坏了格式与未从 Richtextbox4 转换的字符串。
你对我正在监督什么有暗示吗? :)
【问题讨论】:
-
很抱歉,我无法重现此行为。使用
Lines属性如String.Join(Environment.NewLine, RTB1.Lines)有什么运气吗?你真的需要使用 RTB 控件吗?请注意,RTB 控件中的行结尾是LF而不是CRLF:stackoverflow.com/questions/24082742 -
我也只能通过查看 webrequest 的结果来重现它,这有点奇怪。在 Notepad++ 中,它显示 crlf 为换行符。我明天会测试它并报告:)
-
既然您在这里没有使用任何实际的富文本,为什么不使用标准的多行文本框?
-
我已经用 vblf 替换了 vbnewline,这并没有改变问题。编辑:一个多行文本框产生相同的结果。
标签: vb.net richtextbox