2
如何禁用的RichTexBox
或TextBox
高亮选择在我的Windows窗体应用程序如图所示的形象。禁用RichTextBox的高亮选择或文本框
我需要改变选择的高亮显示颜色从Blue
到White
,因为我需要隐藏在TextBox
或RichTextBox
所有的时间选择。我试图使用RichTextBox.HideSelection = true
,但它并不像我预期的那样工作。
如何禁用的RichTexBox
或TextBox
高亮选择在我的Windows窗体应用程序如图所示的形象。禁用RichTextBox的高亮选择或文本框
我需要改变选择的高亮显示颜色从Blue
到White
,因为我需要隐藏在TextBox
或RichTextBox
所有的时间选择。我试图使用RichTextBox.HideSelection = true
,但它并不像我预期的那样工作。
您可以处理WM_SETFOCUS
消息RichTextBox
并将其替换为WM_KILLFOCUS
。
在下面的代码,我添加了一个Selectable
属性ExRichTextBox
。如果您将其设置为false
,则不会呈现选择突出显示。它不会使控制只读,如果你需要使它只读,你也应该设置ReadOnly
属性true
及其BackColor
到White
:
public class ExRichTextBox : RichTextBox
{
public ExRichTextBox()
{
Selectable = true;
}
const int WM_SETFOCUS = 0x0007;
const int WM_KILLFOCUS = 0x0008;
[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
控制做同样的。
可能重复的[视觉工作室找到并替换高亮颜色](http://stackoverflow.com/questions/7192536/visual-studio-find-and-replace-highlight-color) – active92
谢谢你的答案,但我需要在richtextbox – wong
做什么呢? http://stackoverflow.com/questions/11183599/rich-text-box-how-to-highlight-text-block – active92