Vb.net 将光标/插入符号发送到RichTextBox中的下一段
我一直在尝试将RichTextBox中的插入符号移动到另一个段落,就像在键盘上按Ctrl+向下箭头一样。我使用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
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()
之间的区别,您可以在以下文章中阅读更多内容:,