C#RichTextBox选择问题

我在应用程序上有一个RichTextBox控件,这就是我的问题:当应用程序运行时,如果我开始用鼠标选择一个单词中的一些字符并继续在它外面选择,则选择会自动包含我开始选择的整个单词如果我没有弄错的话,我想从中选择一个部分的任何其他单词,ms word-ish。

例如:

  • 文字是:“只是另一个foobar”
  • 我想要选择的是:“只是ano [ther foo] bar”([]之间的东西)
  • 实际选择的是什么:“只是[另一个foobar]”

问题在于鼠标选择,如果我用键盘选择文本就可以了。 此外,控件的自动字选择属性被关闭。 知道为什么会这样吗?

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页面底部留下了一个注释,其中包含错误的详细信息。

自从这个问题得到解答后,事情可能已经发生了变化,但我有一个更简单的解决方案:

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

听起来很疯狂,但在属性框中将其设置为false不起作用。 您必须在代码中执行此操作,即使该属性已经为false。 然后它的作品!