为什么在 C# 中的 RichTextBox 中选择所有文本?
why all text gets selected in RichTextBox in C#?
我只有 form1 和 RichTextBox(windows 表单),我没有代码。
假设我们通过键盘在 RichTextBox 中写入“123456789”。
问题是:当我尝试使用鼠标从右到左 select 数字 9 时,整个文本会在 select 其余文本之前自动得到 selected。
但我可以 select 从左到右 9 没有文本的其余部分得到 selected。而且我可以 select 从右到左编号 1 并且没有其余文本得到 selected。仅当您 select 从右到左的最后一个数字时才会出现此问题。
您可以 select 从右到左的任何数字,文本的其余部分不会 selected 但是如果您 select 从右到左的最后一个数字然后整个文本得到 selected.
我检查了 RichTextBox 属性,但没有任何有趣的地方。 TexBox 不像这样,但我不想使用文本框。
我的问题是:如何使用鼠标 select 在 RichTextBox 中从右到左编号 9 并避免自动 select 编辑整个文本。谢谢
看到 Hans Passant 给出的答案,所有功劳都归于他。
(在这一点上,我觉得给他更多的代表就像在尼亚加拉瀑布上大便一样)
C# RichTextBox selection problem
用汉斯的话来说:
There's a silly bug in the AutoWordSelection property implementation. The workaround is equally silly. Add a new class to your project and paste the code shown below. Compile. Drop the new control from the top of the toolbox onto your form, replacing the existing 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 为我修复了它。
我只有 form1 和 RichTextBox(windows 表单),我没有代码。
假设我们通过键盘在 RichTextBox 中写入“123456789”。 问题是:当我尝试使用鼠标从右到左 select 数字 9 时,整个文本会在 select 其余文本之前自动得到 selected。
但我可以 select 从左到右 9 没有文本的其余部分得到 selected。而且我可以 select 从右到左编号 1 并且没有其余文本得到 selected。仅当您 select 从右到左的最后一个数字时才会出现此问题。
您可以 select 从右到左的任何数字,文本的其余部分不会 selected 但是如果您 select 从右到左的最后一个数字然后整个文本得到 selected.
我检查了 RichTextBox 属性,但没有任何有趣的地方。 TexBox 不像这样,但我不想使用文本框。
我的问题是:如何使用鼠标 select 在 RichTextBox 中从右到左编号 9 并避免自动 select 编辑整个文本。谢谢
看到 Hans Passant 给出的答案,所有功劳都归于他。
(在这一点上,我觉得给他更多的代表就像在尼亚加拉瀑布上大便一样)
C# RichTextBox selection problem
用汉斯的话来说:
There's a silly bug in the AutoWordSelection property implementation. The workaround is equally silly. Add a new class to your project and paste the code shown below. Compile. Drop the new control from the top of the toolbox onto your form, replacing the existing 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 为我修复了它。