我試圖在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