我在应用程序上有一个RichTextBox控件,这就是我的问题:当应用程序运行时,如果我开始用鼠标选择单词中的一些字符并继续在其外面选择,则选择会自动包含整个单词我开始选择和任何其他单词,我想从中选择一个部分,ms word-ish,如果我没有弄错的话。
e.g:
问题在于鼠标选择,如果我用键盘选择文字就可以了。此外,控件的自动字选择属性被关闭。知道为什么会这样吗?
答案 0 :(得分:14)
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的底部留下了一个注释,其中包含错误的详细信息。
答案 1 :(得分:4)
自从这个问题得到解答后,事情可能已经发生了变化,但我有一个更简单的解决方案:
只需将richTextBox1.AutoWordSelection = false;
添加到代码中即可。
听起来很疯狂,但在属性框中将其设置为false
不起作用。
您必须在代码中执行此操作,即使该属性已经为false。
那就行了!