如何在我的Windows窗体应用程序中禁用nextVC
或RichTexBox
的选择突出显示,如图所示。
我需要将选择突出显示颜色从TextBox
更改为Blue
,因为我需要始终隐藏White
或TextBox
中的选择。我尝试使用RichTextBox
,但它并没有像我期望的那样起作用。
答案 0 :(得分:4)
您可以处理RichTextBox
的{{3}}条消息,并将其替换为WM_SETFOCUS
。
在以下代码中,我创建了一个ExRichTextBox
类Selectable
属性:
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
控件执行相同操作。