C# RichTextBox跳转到指定行(文本行跳转和显示行跳转)

文本行跳转:

 

 对禁止自动换行(WordWrap属性为False)有效

1 /// <summary>跳到指定行</summary>
2 private void JumpToLine(int lineIndex)
3 {
4     rtxContext.SelectionStart = rtxContext.GetFirstCharIndexFromLine(lineIndex);
5     rtxContext.SelectionLength = 0;
6     rtxContext.Focus();
7     rtxContext.ScrollToCaret();
8 }

 

 

显示行跳转:

 

 对自动换行(WordWrap属性为True)有效(由于是用Find(),对于内容存在多行文本相同并且靠的很近的情况,依然会出现跳转错误!

 1 /// <summary>跳到指定行</summary>
 2 private void JumpToLine(int lineIndex)
 3 {
 4     var charindex= rtxContext.GetFirstCharIndexFromLine(lineIndex);//不需要也可以,那么对应的Find()参数为0,我处理的是比较大的文章,so...
 5     var strline = rtxContext.Lines[lineIndex];
 6     var viewindex = rtxContext.Find(strline, charindex, RichTextBoxFinds.None);
 7     rtxContext.SelectionStart = viewindex;
 8     rtxContext.SelectionLength = 0;
 9     rtxContext.Focus();
10     rtxContext.ScrollToCaret();
11 }

 

posted @ 2021-01-10 08:42  JustXIII  阅读(877)  评论(0编辑  收藏  举报