2013-06-14 5 views
2

검정색 배경이있는 richtextbox가있는 응용 프로그램을 작성했습니다. 그러므로 나는 흰 텍스트를 사용하여 그것을 써야만한다. 앞의 색상을 흰색으로 설정하면 모두 잘 작동합니다. 그러나 검은 색 Word에서 내 텍스트 상자로 텍스트를 복사하면 해당 텍스트는 검은 색으로 유지됩니다.기존 텍스트의 텍스트 색상 변경

해당 텍스트의 색을 변경해야합니다. (텍스트 상자가 txtMessage라는)하지만 기존의 검정 텍스트에 영향을주지 않습니다

txtMessage.ForeColor = Color.White; 

: 그래서 이것은 내가 지금까지 시도한 것입니다.

원칙적으로
private void txtMessage_TextChanged(object sender, EventArgs e) 
    { 
     int s = txtMessage.SelectionStart; 
     txtMessage.SelectAll(); 
     txtMessage.SelectionColor = Color.White; 
     txtMessage.Select(s, 0); 

    } 

그것은 잘 작동하지만, 물론 때마다 내가 모든 일을 함께 실행된다 (거기에 뭔가를 복사, 단순히 입력하지 않음) 텍스트 상자의 텍스트를 편집 :

은 그 때 나는이 시도 모든 글자를 입력하면 깜박 거림이 발생합니다 (모든 것이 선택되고 매 시간마다 선택 취소됩니다).

누구나이 문제를 우아하게 해결하는 방법에 대한 제안이 있으십니까?

대단히 감사합니다.

+0

어떤 버전의 .NET을 타겟팅하고 있습니까? VS2010 타겟팅에서 테스트되었습니다 .NTEt 4.0 클라이언트 프로파일 및 Word의 검은 색 텍스트는 검정색 배경 및 흰색으로 지정된 경우에도 RichTextBox 컨트롤에서 흰색으로 유지됩니다. – Sevenate

+0

내가 생각하는 가장 최신의 것. 저는 VS2012를 사용하고 있으며 제 노트북은 꽤 새롭습니다. – tomet

답변

2

상자에 색을 흰색으로 설정하면 코드를 실행할 필요가 없습니다.

입력하지 않은 텍스트를 추가 할 때만 실행하면됩니다 (예 : 복사/붙여 넣기).

따라서는, TextChanged 이벤트에 해당 코드를 사용하지만, 사용자가 텍스트를 입력 여부에 그것을 실행하기 전에 검사를 수행하거나 다른 방법

을 추가 편집 :이 질문에 대한 답변을 확인합니다 Detecting a paste into a RichTextBox, 도움이 될 수도 있습니다

+0

감사합니다. 나도 그 생각을했습니다. 비록 내가 어떻게하는지 모르겠다. – tomet

+1

내 편집을 확인하십시오 .. – iabbott

+0

고맙습니다. 그것은 매우 합리적이고 쉽습니다. – tomet