Vb.net 将光标/插入符号发送到RichTextBox中的下一段

Vb.net 将光标/插入符号发送到RichTextBox中的下一段,vb.net,winforms,richtextbox,Vb.net,Winforms,Richtextbox,我一直在尝试将RichTextBox中的插入符号移动到另一个段落,就像在键盘上按Ctrl+向下箭头一样。我使用SendKeys.Send(“^{DOWN}”),但它不一致,有时似乎按了两次,即跳过一些行。但当从键盘直接按下时,要平稳移动而不跳跃 如何使发送键保持稳定,或者有其他方法吗?您可以使用: Dim nextParagraphPos = RichTextBox1.Text.IndexOf(vbLf, RichTextBox1.SelectionStart) + 1 If nextParag

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

如何使发送键保持稳定,或者有其他方法吗?

您可以使用:

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()+↓.

您也可以用以下较短版本替换
If
语句:

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

@不是真的<代码>IIf()
仅为向后兼容而存在。您应该始终使用
If()
,因为它使用短路评估(而
IIf()
)。关于
If()
IIf()
之间的区别,您可以在以下文章中阅读更多内容:,