我正试图围绕 WinForms RichTextBox 中的一种行为。
当您使用 RichTextBox 并选择 RichTextBox 的右端时,可以通过按住 shift 并向右推来选择右侧的附加字符。
真正让我难以置信的是 RichTextBox 的 SelectionLength 属性为 0。如果您从视觉上看它,您似乎选择了从当前文本末尾开始的 1 个字符长度。如果您查看 curSelStart 和 curSelEnd 属性,则 curSelStart 从您的 Text 属性的末尾开始,并且 curSelEnd 超出它的一个字符。
我们正在使用我们自己的 Winforms RichTextBox 子类,该子类实现了所有特殊行为方式,其中我们假设如果按选择长度为 0 的退格键,您将删除一个字符。在这种情况下,这个假设不再成立,因为按下退格键只会删除您当前的选择。
关于它为什么会这样表现的任何想法?有什么办法吗?