台灣最大程式設計社群網站
線上人數
1200
 
會員總數:246737
討論主題:190152
歡迎您免費加入會員
討論區列表 >> C# >> RichTextBox.Find() startindex不可以大於字串的長度
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
RichTextBox.Find() startindex不可以大於字串的長度
價值 : 93 QP  點閱數:168 回應數:0
樓主

bon
門外漢
0 25
648 45
發送站內信

各位好,

我目標是用RichTextBox製作搜尋並Highlight的功能,網路上找得到的都是針對純文字的作法,例如:
https://stackoverflow.com/questions/11851908/highlight-all-searched-words

但我的應用中,RichTextBox需要使用Rtf格式,所以內容千奇百怪,有表格、有不同字體、不同顏色文字、emoji等等。
用RichTextBox.Find()可以很好地從Rtf內容中找到目標字串,但有時在Rtf接近末端的地方會跳startindex不可以大於字串的長度,這是Find()內部呼叫String.Substring時觸發的例外。

我嘗試過用Find(word, start, end, RichTextBoxFind.None),指定明確的end index小範圍反覆測試後,會發現在固定的index報錯,而這個end index距離RichTextBox.TextLength還有幾百個字元,所以感覺不像是Find()輸入參數的問題。

如果Rtf只留下出錯位置附近的內容,卻又不會報錯。

原諒我無法提供Rtf內容。是否有人遇到類似的問題?



搜尋相關Tags的文章: [ RichTextBox ] ,
本篇文章發表於2022-07-14 16:06
目前尚無任何回覆
   

回覆
如要回應,請先登入.