У меня есть RichTextBox, и я хочу add some text в middle из text. Например, я получил этот текст:
"Первый текст Второй текст"
Я хочу добавить текст между "FirstText" and the "SecondText"., который я пробовал, и split the text to 2 strings, и добавить к первому мой дополнительный текст, а затем добавить ему вторую строку. Это сработало, но это уничтожило мой richTextBox1.SelectionColor (I got color...). Итак, как я могу добавить текст, не вырезая мой richTextBox1.Text или Как я могу сохранить все данные о цвете?
Ответ 1 · рейтинг 1 · LarsTech
Вы должны найти начальный индекс самостоятельно:
int index = richTextBox1.Text.IndexOf(" ");
if (index > -1) {
richTextBox1.Select(index, 1);
richTextBox1.SelectedText = " Inserted Text ";
}
Ответ 2 · рейтинг 1 · MethodMan
Знакомы ли вы с начальной позицией и конечной позицией? вы можете просто сделать что-то вроде этого
richTextBox1.SelectionStart = index;
richTextBox1.SelectionLength = length;//you need to assign an integer where to start
richTextBox1.SelectedText = "Good";
он заменит любую позицию в тексте, где вы назначили длину, словом "Хорошо".
Ответ 3 · Silvestre
Проверьте этот сообщение.
Возможно, вам потребуется изменить значение SelectionStart на позицию, в которую вы хотите поместить новый текст.
Если вам нужно найти правильный индекс, вы можете использовать что-то вроде этого:
startIndex = richTextBox1.Find(expressionToFind, 0,
richTextBox1.Text.Length,
RichTextBoxFinds.WholeWord);
Надеюсь, поможет.