Windows Forms RichTextBox游标位置

我有一个C#Windows窗体程序,它具有RichTextBox控件。 每当更改框内的文本时(除了键入该更改),光标将返回到开头。

换句话说,当使用Text属性更改RichTextBox中的文本时,它会使光标跳回。

如何将光标保持在相同位置或将其与编辑后的文本一起移动?

谢谢

您可以在进行更改之前存储光标位置,然后将其恢复:

int i = richTextBox1.SelectionStart; richTextBox1.Text += "foo"; richTextBox1.SelectionStart = i; 

如果您不想删除突出显示,您可能还希望对SelectionLength执行相同操作。 请注意,如果插入的文本在选择内,这可能会导致奇怪的行为。 然后,您需要扩展选择以包括插入文本的长度。

要小心,如果有人刷新或完全改变RichTextBox内容,必须先调用焦点方法才能移动插入符号:

 richTextBox1.Focus(); int i = richTextBox1.SelectionStart; richTextBox1.Text = strPreviousBuffer; richTextBox1.SelectionStart = i; 

这是一个较小的,具有相同的效果。 this.richTextBox1.Select(this.richTextBox1.Text.Length, 0); 这标志着文本末尾的0个字符并将光标设置为结束