作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何在我的 Windows 窗体应用程序中禁用 RichTexBox
或 TextBox
的选择突出显示,如图所示。
我需要将选择突出显示颜色从 Blue
更改为 White
,因为我需要在 TextBox
或 RichTextBox< 中隐藏选择
一直。我尝试使用 RichTextBox.HideSelection = true
,但它并没有像我预期的那样工作。
最佳答案
你可以处理WM_SETFOCUS
RichTextBox
的消息并将其替换为 WM_KILLFOCUS
.
在下面的代码中,我创建了一个具有 Selectable
属性的 ExRichTextBox
类:
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
控件执行相同的操作。
关于c# - 禁用 RichTextBox 或 TextBox 中的选择突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589176/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!