【发布时间】:2011-10-01 04:07:30
【问题描述】:
如果txtLog 是RichTextBox 控件:
Dim text = "hi" & vbCrLf
Debug.WriteLine("t:" & text.Length) ' --> 4, as expected
txtLog.Text = text
Debug.WriteLine("tL:" & txtLog.TextLength) ' --> 3. muh?! :(
查看the RTF spec,段落的结尾被标记为\par,既不是CR也不是LF。这是有道理的,因为 RTF 是标记语言;就像在 HTML 中一样,行尾本身没有什么意义。
所以大概,在写入RichTextBox 时,我的行尾被编码为\par。然后,在提取时,\par 被转换回真实的行尾以供使用。
原来这行结尾是vbLf。
为什么,既然 Microsoft 几乎一致地使用 CRLF 作为行尾,那么 RichTextBox 会将 \par 翻译成 vbLf 而不是 vbCrLf?
【问题讨论】:
-
您使用的是什么类型的富文本框? WinForms、Silverlight、WPF 等?对不起。刚刚看到链接-然后是WinForms
-
@Scott:是的。
System.Windows.Forms.RichTextBox.
标签: vb.net winforms richtextbox rtf