【问题标题】:String built from multiple Richtextboxes looses formatting从多个富文本框构建的字符串丢失格式
【发布时间】: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 而不是 CRLFstackoverflow.com/questions/24082742
  • 我也只能通过查看 webrequest 的结果来重现它,这有点奇怪。在 Notepad++ 中,它显示 crlf 为换行符。我明天会测试它并报告:)
  • 既然您在这里没有使用任何实际的富文本,为什么不使用标准的多行文本框?
  • 我已经用 vblf 替换了 vbnewline,这并没有改变问题。编辑:一个多行文本框产生相同的结果。

标签: vb.net richtextbox


【解决方案1】:

你可以看看ControlChars 像这样:

 RichTextBox1.Text = RichTextBox1.Text.Replace(ControlChars.Lf, ControlChars.CRLF)

【讨论】:

  • 我已经用字符串 "MyFinstr" 完成了这个转换。字符串是通过加入 Richtextbox-texts 并在其间放置换行符来构建的。但是它不会改变格式 - 问题。
  • 尝试手动添加&"\r\n"&,而不是vbnewline,这可能会起作用...我的virtualbasic有点生疏^^可能vbnewline正在检查最后一行,只有当有任何字符,然后它会换行......在空行打印一个空格符&" "&可能会起作用
猜你喜欢
  • 2023-01-21
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
相关资源
最近更新 更多