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