我有一个具有RichTextBox控件的C#Windows窗体程序。只要盒子内的文本发生改变(除了输入该改变),光标就会回到开头。Windows窗体RichTextBox光标位置
换句话说,当通过使用Text属性更改RichTextBox中的文本时,它会使光标跳回。
如何将光标保持在同一位置或将其与编辑的文本一起移动?
感谢
我有一个具有RichTextBox控件的C#Windows窗体程序。只要盒子内的文本发生改变(除了输入该改变),光标就会回到开头。Windows窗体RichTextBox光标位置
换句话说,当通过使用Text属性更改RichTextBox中的文本时,它会使光标跳回。
如何将光标保持在同一位置或将其与编辑的文本一起移动?
感谢
您可以将光标位置,在更改前,再后来恢复它:
int i = richTextBox1.SelectionStart;
richTextBox1.Text += "foo";
richTextBox1.SelectionStart = i;
您可能还希望做同样的SelectionLength如果你不想删除高光。请注意,如果插入的文本位于选区内,这可能会导致奇怪的行为。然后,您需要扩展选择以包含插入文本的长度。
richTextBox1.Focus();
int i = richTextBox1.SelectionStart;
richTextBox1.Text = strPreviousBuffer;
richTextBox1.SelectionStart = i;
要小心,如果有人刷新或变更完全RichTextBox的内容,对焦方式,必须事先以移动插入符invoqued。 this.richTextBox1.Select(this.richTextBox1.Text.Length, 0);
在文本末尾标记0个字符并将光标设置为结束
这里有一个较小的一个,具有同样的效果: