我只有form1和RichTextBox(windows窗体),我没有代码。
让我们说" 123456789"在RichTextBox中通过键盘。 问题是:当我尝试使用鼠标从右到左选择数字9时,即使我选择其余文本,也会自动选择整个文本。
但是我可以从左到右选择9而不选择其余的文本。而且我也可以从右到左选择数字1,而不选择其余的文本。只有从右到左选择最后一个数字时才会出现问题。
您可以从右到左选择任意数字,但是文本的其余部分不会被选中,但如果从右到左选择最后一个数字,则会选择整个文本。
我检查了RichTextBox属性但没有什么有趣的。 TexBox不是这样的,但我不想使用文本框。
我的问题是:如何使用鼠标在RichTextBox中从右到左选择数字9,避免自动选择整个文本。谢谢
答案 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为我修复了它。