我注意到RichTextBox用LF或空字符串替换CR。 VB示例:
Dim s1 As String = vbCr
RichTextBox1.Text = s1
Dim s2 String = RichTextBox1.Text
s1 = s2 => False
s1 => <CR>
s2 => <LF>
或者
Dim s1 As String = vbCrLf
RichTextBox1.Text = s1
Dim s2 String = RichTextBox1.Text
s1 = s2 => False
s1 => <CR><LF>
s2 => <LF>
为什么它的行为与此类似,是否有改变它的方法,强制它正确存储这些字符(如果它对输入文本进行任何其他更改以防止它)?
我正在创建与其他应用程序通信的消息,因此不要更改任何字符,因为消息将被拒绝。
答案 0 :(得分:0)
您可以使用RichTextBox控件的Rtf属性。但是,如果您需要完全控制提交的内容,则RichTextBox不是最佳选择。它将输入的文本存储在其自己的内部数据结构中,并且更像黑盒子。无论如何,您的业务需求是什么?
答案 1 :(得分:0)
由于RTF是一种标记语言(如HTML),因此行结尾几乎没有任何意义。 RTF使用\par
开始新段落。
来自specs:
回车(字符值13)或换行符(字符值 如果字符前面有,则将被视为\ par控件 反斜杠。你必须包括反斜杠;否则,RTF忽略 控制字。 (您可能还想插入一个 至少每255个没有反斜杠的回车/换行对 通过通信线路传输更好文本的字符。)
由于有多个字符将被\par
替换,因此您永远无法取回原始字符。
因此RichTextBox控件在这里是错误的选择。如果你能提供更多有关你的目标的信息,那么有人可能会提出更好的方法。