C#RichTextBox的选择问题C#RichTextBox的选择问题(C# RichTextBo

2019-05-12 10:25发布

我有一个应用程序RichTextBox控件,这里是我的问题:应用程序运行时,如果我开始用鼠标选择一些字符的字内,继续外面选择,选择自动包括全词中,我开始选择和任何其他的文字说明我要选择只是一个部分,微软Word十岁上下,如果我没有记错。

例如:

  • 文字是:“又一个foobar的”
  • 我要选择的是:“只要ANO [疗法FOO]巴”(即在[]之间的事情)
  • 什么是真正选择:“只要[另一FOOBAR]”

问题是,只是鼠标选择,如果我选择用键盘文本它工作得很好。 此外,控制的自动字选择属性关闭。 任何想法,这是为什么?

Answer 1:

有一个在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;
        }
    }
}

我在这个底部留下注释MSDN Library页面与错误的详细信息。



Answer 2:

也许事情已经改变,因为这个问题得到回答,但我有一个更简单的解决方案:

只需添加richTextBox1.AutoWordSelection = false; 该代码。

听起来很疯狂,但这种设置为false的属性框不起作用。 你必须做的代码,即使财产已经是假的。 然后,它的工作原理!



文章来源: C# RichTextBox selection problem
标签: c# controls