为什么在C#中的RichTextBox中选择所有文本?

时间:2015-11-17 16:15:49

标签: c# winforms richtextbox

我只有form1和RichTextBox(windows窗体),我没有代码。

让我们说" 123456789"在RichTextBox中通过键盘。 问题是:当我尝试使用鼠标从右到左选择数字9时,即使我选择其余文本,也会自动选择整个文本。

但是我可以从左到右选择9而不选择其余的文本。而且我也可以从右到左选择数字1,而不选择其余的文本。只有从右到左选择最后一个数字时才会出现问题。

您可以从右到左选择任意数字,但是文本的其余部分不会被选中,但如果从右到左选择最后一个数字,则会选择整个文本。

我检查了RichTextBox属性但没有什么有趣的。 TexBox不是这样的,但我不想使用文本框。

我的问题是:如何使用鼠标在RichTextBox中从右到左选择数字9,避免自动选择整个文本。谢谢

1 个答案:

答案 0 :(得分:0)

请参阅Hans Passant给出的答案,所有信用都归他所有 (在这一点上,我觉得给他更多的代表就像是在尼亚格拉斯瀑布拍摄一张照片)

C# RichTextBox selection problem

汉斯的话:

  

AutoWordSelection属性实现中存在一个愚蠢的错误。解决方法同样愚蠢。在项目中添加一个新类并粘贴下面显示的代码。编译。将新控件从工具箱顶部拖放到表单上,替换现有RTB。

using System;
using System.Windows.Forms;

public class FixedRichTextBox : RichTextBox {
    protected override void OnHandleCreated(EventArgs e) {
        base.OnHandleCreated(e);
        if (!base.AutoWordSelection) {
            base.AutoWordSelection = true;
            base.AutoWordSelection = false;
        }
    }
}

我之前可以肯定地复制这种行为,并且自定义RichTextBox为我修复了它。