首页 > 解决方案 > 将光标/插入符号发送到 RichTextBox 中的下一段

问题描述

我一直在尝试将 RichTextBox 中的插入符号移动到另一个段落,就像在键盘上按下 Ctrl+向下箭头一样。我使用SendKeys.Send("^{DOWN}")但不一致,有时它似乎按了两次,即跳过一些行。但是当直接从键盘上按下它时,可以流畅地移动而不会跳跃。

我该如何制作SendKeys马厩,或者有其他方法可以解决这个问题吗?

标签: vb.netwinformsrichtextbox

解决方案


您可以使用:

Dim nextParagraphPos = RichTextBox1.Text.IndexOf(vbLf, RichTextBox1.SelectionStart) + 1
If nextParagraphPos > 0 Then
    RichTextBox1.SelectionStart = nextParagraphPos
Else
    RichTextBox1.SelectionStart = RichTextBox1.TextLength
End If

这用于IndexOf()获取下一个换行符的位置,它显示下一段的位置。如果IndexOf()返回-1,我们将位置设置在字符串的末尾以模拟Ctrl+的行为↓</kbd>.

您也可以If用这个较短的版本替换语句:

RichTextBox1.SelectionStart = 
    If(nextParagraphPos > 0, nextParagraphPos, RichTextBox1.TextLength)

推荐阅读