我试图在RichTextBox中将a
替换为4
。它取代了文字“一”不带“4”而是“4nsi4nsicpg1252ng16393rd4r” ..数字和特殊字符不替换
这是我使用的代码: RichTextBox1.Rtf = RichTextBox1.Rtf.Replace("a", "4")
我如何能在“一”替换任何帮助一个“4”?顺便说一句我可以用“test”替换“a”而不是“4”
我试图在RichTextBox中将a
替换为4
。它取代了文字“一”不带“4”而是“4nsi4nsicpg1252ng16393rd4r” ..数字和特殊字符不替换
这是我使用的代码: RichTextBox1.Rtf = RichTextBox1.Rtf.Replace("a", "4")
我如何能在“一”替换任何帮助一个“4”?顺便说一句我可以用“test”替换“a”而不是“4”
RTF(富文本格式)是文档和控制字的文本组合,用于描述如何格式化文本。 RichTextBox1.Rtf
属性返回RTF,而不是纯文本,因此您的Replace
语句会破坏某些RTF控制字。例如,您可能RTF开始:
{\rtf1\ansi\ansicpg1252 ...
凡\rtf1
,\ansi
和\ansicpg1252
是RTF控制字。你Replace
改变了到:
{\rtf1\4nsi\4nsicpg1252 ...
由于\4nsi
和\4nsicpg1252
不再有效RTF控制字,他们最终会被显示为文本 - 减用来指示控制字的开始\
字符。
的RichTextBox.Text
属性将返回纯文本,所以你可以尝试使用,而不是,但我怀疑,这也将剔除已被应用到该文件的任何格式:
RichTextBox1.Text = RichTextBox1.Text.Replace("a", "4")
查找/替换可以在richtextbox控件中执行以保留格式。如这里所述
Private Sub Replace(ByVal findText As String, ByVal replacement As String)
Dim startIndex = 0
Dim foundIndex = RichTextBox1.Find(findText, startIndex, RichTextBoxFinds.None)
While foundIndex >= 0
RichTextBox1.SelectedText = replacement
startIndex = foundIndex + replacement.Length
foundIndex = RichTextBox1.Find(findText, startIndex, RichTextBoxFinds.None)
End While
End Sub
多个变化可以被组合成一个单一的撤消块,使用第二RichTextBox中: https://stackoverflow.com/a/5097179