RichTextbox
에 특정 위치와 특정 색으로 문자열을 삽입하고 싶습니다. 그래서 RichTextbox
클래스의 AppendText()
메서드에 대한 확장을 추가하려고했습니다. RichTextbox의 특정 색으로 특정 색인에 텍스트 삽입
public static void AppendText(this RichTextBox Box, string Text, Color col, int SelectionStart)
{
Box.SelectionStart = SelectionStart;
Box.SelectionLength = 0;
Box.SelectionColor = col;
Box.SelectionBackColor = col;
Box.Text = Box.Text.Insert(SelectionStart, Text);
Box.SelectionColor = Box.ForeColor;
}
나는
RichTextBoxExtension
라는 클래스에서 이것을 사용했습니다. 그 결과는 내 기대에 따른 것이 아닙니다. 문자열이 삽입되었지만 선택한 색상이 아닙니다. 이 기능을 수행하는 더 좋은 방법이 있습니까?
편집 :이 기능이 필요한 이유를 알려주는 것이 흥미로울 수 있다고 생각합니다. 사실, 사용자가 닫는 괄호를 쓸 때, 나는 연관 여는 괄호를 highligh (또는 color)하고 싶습니다. 예를 들어 사용자가 (Mytext)를 쓰는 경우 사용자가 ")"을 탭하고이 괄호 위에 선택을 유지하면 첫 번째 괄호가 색상으로 표시됩니다.
Text 속성은 모든 서식이 손실 될 것입니다 설정. 대신 SelectionText 속성을 할당해야합니다. SelectionStart 및 SelectionLength 속성을 복원해야합니다. 혼자서 선택한 색상의 버그를 발견하게됩니다. –
WinForms 질문입니다.하지만 WPF-o-sphere에서 누군가가 넘어지면 RichTextBox의 기본 FlowDocument에 'Document' 속성을 사용하여 쉽게 접근 할 수 있습니다. - 이것은 훨씬 더 강력한 편집 API를 가지고 있으며, 맞춤법 검사와 같은 다른 고급 기능을 위해 WinForms 편집기보다 선호됩니다. - WinForms에 갇혀 있다면, WPF Rich Text 편집기를 'ElementHost' 컨트롤로 호스팅하는 것이 좋습니다. – BrainSlugs83