WinFormsRichTextBoxの動作に頭を悩ませようとしています。
RichTextBoxを使用していて、RichTextBoxの右端を選択する場合は、Shiftキーを押しながら右に押すと、右側に追加の文字を選択できます。
本当に頭がおかしいのは、RichTextBoxのSelectionLengthプロパティが0であるということです。視覚的に見ると、現在のテキストの末尾から始まる1文字の長さの選択があるように見えます。curSelStartプロパティとcurSelEndプロパティを見ると、curSelStartはTextプロパティの最後から始まり、curSelEndはそれを1文字超えています。
Winforms RichTextBoxの独自のサブクラスを使用しており、あらゆる種類の特別な動作が実装されています。その中で、SelectionLengthが0のバックスペースを押すと、文字が消去されると想定しています。この場合、バックスペースを押すと現在の選択範囲が消去されるため、この仮定はもはや当てはまりません。
なぜそれがこのように振る舞うのかについてのアイデアはありますか?それを回避する方法はありますか?