RichTextBox コントロールを持つ C# Windows フォーム プログラムがあります。ボックス内のテキストが変更されると (その変更を入力する以外)、カーソルは最初に戻ります。
つまり、Text プロパティを使用して RichTextBox 内のテキストを変更すると、カーソルが元に戻ります。
カーソルを同じ位置に保持したり、編集したテキストと一緒に移動したりするにはどうすればよいですか?
ありがとう
RichTextBox コントロールを持つ C# Windows フォーム プログラムがあります。ボックス内のテキストが変更されると (その変更を入力する以外)、カーソルは最初に戻ります。
つまり、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 文字をマークし、カーソルを end に設定します