2016-09-20 3 views
2

이미지에 표시된대로 Windows Forms 애플리케이션에서 RichTexBox 또는 TextBox의 선택 강조 표시를 비활성화하는 방법은 무엇입니까? 내가 TextBox 또는 RichTextBox 모든 시간에 선택을 숨길 필요가 있기 때문에RichTextBox 또는 TextBox의 선택 강조 표시를 비활성화하십시오.

enter image description here

나는, Blue에서 White에 선택 강조 표시 색상을 변경해야합니다. 내가 RichTextBox.HideSelection = true을 사용하려고했지만 예상대로 작동하지 않습니다.

+0

[Visual Studio에서 하이라이트 색상을 찾아 교체하십시오] (http://stackoverflow.com/questions/7192536/visual-studio-find-and-replace-highlight-color) – active92

+0

감사합니다. richtextbox – wong

+0

에 대해 어떻게해야합니까? http://stackoverflow.com/questions/11183599/rich-text-box-how-to-highlight-text-block – active92

답변

1

WM_SETFOCUS 메시지를 RichTextBox으로 처리하고 WM_KILLFOCUS으로 바꿀 수 있습니다.

코드 아래에 에 Selectable 속성을 추가했습니다. false으로 설정하면 선택 강조 표시가 렌더링되지 않습니다. 그것은 컨트롤이 읽기 전용으로하지 않습니다 당신이해야 할 경우 읽기 전용, 당신은 또한 trueReadOnly 속성을 설정해야하고 그 BackColorWhite에 :

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 제어를 위해 동일한 작업을 수행 할 수 있습니다 .

관련 문제