#c#
#c#
Вопрос:
У меня проблема с цветом строки rich text box:
У меня есть richtexbox, в котором пользователь вводит сообщение. Я отмечаю каждое слово, которое существует в моем словаре. Для этого я использую этот код:
this.inputTextAreaRtb.Text=this.inputTextAreaRtb.Text.Remove(startCoordinate, endCoordinate - startCoordinate);
this.inputTextAreaRtb.SelectionStart = this.inputTextAreaRtb.Text.Length;
this.inputTextAreaRtb.SelectionLength = 0;
this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
"David",
12, FontStyle.Underline);
this.inputTextAreaRtb.SelectionColor = Color.DarkBlue;
this.inputTextAreaRtb.AppendText(_word);
this.inputTextAreaRtb.SelectionColor = this.inputTextAreaRtb.ForeColor;
this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
"David",
12, FontStyle.Regular);
Но каждый раз, когда я уже пометил слово, происходит неправильное форматирование слов, которые уже отформатированы.
Есть идеи по поводу этой проблемы?
Ответ №1:
Когда вы устанавливаете inputTextAreaRtb.Text
в первой строке, вы устанавливаете новый текст, который не имеет никакого форматирования.
Комментарии:
1. Да, вы правы! Но каково альтернативное решение в этом случае? Есть идеи? Я уже пробовал решение rtf ниже, но оно очень сложное, я думаю, что в этом случае есть более простое решение.
Ответ №2:
SLaks верен. Чтобы получить / задать форматированный текст, вам необходимо получить доступ к Rtf
свойству: http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.rtf.aspx.
Также проверьте SelectedRtf
свойство: http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.selectedrtf.aspx.
Ответ №3:
this.inputTextAreaRtb.Text=this.inputTextAreaRtb.Text.Remove(startCoordinate, endCoordinate - startCoordinate);
***this.inputTextAreaRtb.Rtf = this.lastRTF;***
this.inputTextAreaRtb.SelectionStart = this.inputTextAreaRtb.Text.Length;
this.inputTextAreaRtb.SelectionLength = 0;
this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
"David",
12, FontStyle.Underline);
this.inputTextAreaRtb.SelectionColor = Color.DarkBlue;
this.inputTextAreaRtb.AppendText(_word);
this.inputTextAreaRtb.SelectionColor = this.inputTextAreaRtb.ForeColor;
this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
"David",
12, FontStyle.Regular);
Мне нужно было только сохранять последний RTF-файл RichTextBox перед каждой итерацией
Спасибо, ребята!