我有一個具有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個字符並將光標設置爲結束
這裏有一個較小的一個,具有同樣的效果: