禁用RichTextBox或TextBox中的选择突出显示

时间:2016-09-20 08:29:30

标签: c# winforms textbox selection richtextbox

如何在我的Windows窗体应用程序中禁用nextVCRichTexBox的选择突出显示,如图所示。

enter image description here

我需要将选择突出显示颜色从TextBox更改为Blue,因为我需要始终隐藏WhiteTextBox中的选择。我尝试使用RichTextBox,但它并没有像我期望的那样起作用。

1 个答案:

答案 0 :(得分:4)

您可以处理RichTextBox的{​​{3}}条消息,并将其替换为WM_SETFOCUS

在以下代码中,我创建了一个ExRichTextBoxSelectable属性:

  • Selectable:启用或禁用选择突出显示。如果您将Selectable设置为false,则会禁用选择突出显示。它默认启用。

备注:它不会将控件设置为只读,如果您需要将其设置为只读,则还应将ReadOnly属性设置为true,将BackColor设置为White public class ExRichTextBox : RichTextBox { public ExRichTextBox() { Selectable = true; } const int WM_SETFOCUS = 0x0007; const int WM_KILLFOCUS = 0x0008; ///<summary> /// Enables or disables selection highlight. /// If you set `Selectable` to `false` then the selection highlight /// will be disabled. /// It's enabled by default. ///</summary> [DefaultValue(true)] public bool Selectable { get; set; } protected override void WndProc(ref Message m) { if (m.Msg == WM_SETFOCUS && !Selectable) m.Msg = WM_KILLFOCUS; base.WndProc(ref m); } }

TextBox

您可以对$select = $neo->getNode(4); // 4 is the node's id控件执行相同操作。