3

我正在开发一个 Windows 窗体应用程序。我使用RichTextBox.LoadFile方法从文件中加载文本并突出显示文本的某些部分。文件中的文本包含返回字符。

假设我要突出显示the highlight. 首先我找到零件的和startIndex,然后使用它并给它一些颜色。lengththe highlightRichTextBox.Select(startIndex, length)

当我使用SubString方法时,我可以找到正确的文本。但是当我对方法应用相同的值时startIndex,突出显示的部分变为. 看起来该方法考虑了一些返回字符并导致了一些问题。lengthSelect[space][space][space]the highliSelect

我该如何解决?

4

3 回答 3

1

我认为您应该使用以下Find()方法RichTextBox

int nextStartIndex;
public void Find(string keyword){
   int i = richTextBox1.Find(keyword, nextStartIndex, RichTextBoxFinds.None);
   if(i != -1) {
      nextStartIndex = i + keyword.Length;          
   }
}
于 2013-08-15T07:52:04.330 回答
0

这就是我在 RichTextBox 中“搜索”特定文本然后将其突出显示为 RED 的方式

private void ColoritRed(RichTextBox rtb, string StringToHighlight)
    {
        int pos = 0;
        string searchText = StringToHighlight;
        pos = rtb.Find(searchText);
        while (pos != -1)
        {
            if (rtb.SelectedText == searchText)
            {
                this.ActiveControl = rtb;
                rtb.SelectionStart = pos;
                rtb.SelectionLength = searchText.Length;
                rtb.SelectionColor = Color.Red;
            }
            pos = rtb.Find(searchText, pos + 1, RichTextBoxFinds.MatchCase);
        }
于 2013-08-16T02:50:31.270 回答
0

我第一次听说它,我用richTextBox了很多。尝试使用从文件SubString中查找您想要的子字符串richTextBox.Text而不是字符串。如果您已经这样做了,请尝试检查 substring 方法的返回编号,看看它是否引用了正确的位置。

另外,请分享您的代码,我想亲眼看看。如果这是一个.net问题,那么我需要检查我的工作......

于 2013-08-15T07:42:53.980 回答