数字和特殊字符不替换

问题描述:

我试图在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://*.com/a/5097179