2013-05-05 3 views
1

아래에 검색 창이있는 RichTextBox이 있습니다. 내가 검색 기능에 대한 다음 코드를 사용RichTextBox에서 텍스트 선택을 취소하십시오.

TabPage activePage = tabs.SelectedTab; 
      RichTextBox xmlBox = activePage.Controls.Find("xmlBox", true).Single() as RichTextBox; 

xmlBox.DeselectAll(); 

int index = 0; 
int len = xmlBox.TextLength; 
int lastIndex = xmlBox.Text.LastIndexOf(tbSearch.Text); 

while (index < lastIndex) 
{ 
    xmlBox.Find(tbSearch.Text, index, len, RichTextBoxFinds.WholeWord); 
    xmlBox.SelectionBackColor = Color.Yellow; 
    index = xmlBox.Text.IndexOf(tbSearch.Text, index) + 1; 
} 

는 내가 원하는 것은 그 사용자 유형에게 말씀 User을 말할 수있다. 그가 U을 입력 할 때 U을 모두 강조 표시 한 다음 r을 삭제하면 Use 만 강조 표시됩니다. 나는 DeselectAll()이 트릭을 할 것이라고 생각했지만, 이것은 효과가 없습니다. 다른 방법이 있나요?

+0

DeselectAll()은 현재 선택된 항목을 선택 취소합니다. 귀하의 코드는 실제로 이전 텍스트의 BackColor()를 변경 했으므로이 작업을 실행 취소해야합니다. 모든 항목을 선택하고 기본 색상으로 다시 설정하여 다시 새 검색 값을 강조 표시 할 수 있습니다. –

+0

@ 아이드 마인드 - 예. 그것이 결국 내가 한 일입니다. 신용으로 알려 드릴 수 있도록이 게시물을 답장으로 보내주십시오. –

답변

4

DeselectAll()은 현재 선택된 항목을 선택 취소합니다. 귀하의 코드는 이전 텍스트의 BackColor()를 실제로 변경했기 때문에 모든 것을 선택하고 기본 색상으로 재설정하여 새로운 검색 값을 다시 강조 표시합니다.

+0

예. 'SelectAll()'을 사용하여'BackColor'를 다시 흰색으로 설정했습니다. 감사. –

관련 문제