【问题标题】:C# RichTextBox selection problemC# RichTextBox 选择问题
【发布时间】:2011-04-10 08:49:30
【问题描述】:

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

例如:

  • 文字是:“Just another foobar”
  • 我要选择的是:“Just an[ther foo]bar”([] 之间的东西)
  • 实际选择的是什么:“Just [another foobar]”

问题只是鼠标选择,如果我用键盘选择文本,它就可以正常工作。此外,该控件的自动单词选择属性已关闭。知道这是为什么吗?

【问题讨论】:

标签: c# controls


【解决方案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 page 的底部留下了一个注释,其中包含错误的详细信息。

【讨论】:

  • 那是完全蹩脚的......但谢谢,我会尽快尝试。我终于体验到了一些 .net 错误!
【解决方案2】:

也许自从回答了这个问题后情况发生了变化,但我有一个更简单的解决方案:

只需在代码中添加richTextBox1.AutoWordSelection = false;

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

【讨论】:

    猜你喜欢
    • 2013-04-26
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多