C# Windows窗体-允许用户按字符选择RichTextBox中的文本(禁用word自动选择)
我正在使用Windows窗体制作一个十六进制编辑器,我制作了一个RichTextBox,它显示十六进制数据的ASCII表示形式,如下所示: 我希望用户能够逐个字符选择文本框中的内容,但控件会自动更改选择,以便在单词边界上开始和结束 例如,在上图中,选择从C# Windows窗体-允许用户按字符选择RichTextBox中的文本(禁用word自动选择),c#,winforms,C#,Winforms,我正在使用Windows窗体制作一个十六进制编辑器,我制作了一个RichTextBox,它显示十六进制数据的ASCII表示形式,如下所示: 我希望用户能够逐个字符选择文本框中的内容,但控件会自动更改选择,以便在单词边界上开始和结束 例如,在上图中,选择从May到J(六月的第一个字母)将选择May-JuneJulyAug,而不仅仅是May-J。用户似乎不可能只选择May J 有没有办法关闭这个自动选择?我已经将AutoWordSelection设置为false,但这似乎没有改变任何事情。该属性仅
May
到J
(六月的第一个字母)将选择May-JuneJulyAug
,而不仅仅是May-J
。用户似乎不可能只选择May J
有没有办法关闭这个自动选择?我已经将
AutoWordSelection
设置为false,但这似乎没有改变任何事情。该属性仅在已创建句柄时设置,因为它应该是默认行为。创建实例后,只需调用CreateControl()
:var rtb=new RichTextBox();rtb.CreateControl();(…)[Container].Controls.Add(rtb);rtb.AutoWordSelection=false代码>。否则,您将不得不等到句柄在Form.Load()中被创建时才能确定(但可能您不想把它弄得乱七八糟)。您可以使用自定义控件并重写OnHandleCreated
。顺便说一句,属性用[DefaultValue(false)]
修饰,因此在设计器中设置时不会序列化属性值。然后在调用base.OnHandleCreated(e)之前,在OnHandleCreated
覆盖中重置它代码>。。。