Текст вставки в WPF textbox в положении знака вставки

Как я могу вставить текст в WPF textbox в положении знака вставки? Что я пропускаю? В Win32 Вы могли использовать CEdit:: ReplaceSel ().

Это должно работать, как будто Паста () команда была призвана. Но я хочу избегать использования клипборда.

19
задан Roice 22 January 2010 в 12:49
поделиться

4 ответа

Чтобы просто вставить текст на позиции CARET:

textBox.Text = textBox.Text.Insert(textBox.CaretIndex, "<new text>");

Чтобы заменить выбранный текст новым текстом:

textBox.SelectedText = "<new text>";

для прокрутки текстового ящика к позиции CARET:

int lineIndex = textBox.GetLineIndexFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToLine(lineIndex);
54
ответ дан 30 November 2019 в 01:59
поделиться

Я нашел еще более простое решение:

textBox.SelectedText = "New Text";
textBox.SelectionLength = 0;

затем прокрутите до позиции, как указано по Тарсие.

9
ответ дан 30 November 2019 в 01:59
поделиться

Используйте TextBox.caretindex, чтобы изменить текст, связанный с свойством TextBox.text.

0
ответ дан 30 November 2019 в 01:59
поделиться

Если вы хотите переместить каретку после вставленного текста, вам пригодится следующий код

textBox.SelectedText = "New Text";
textBox.CaretIndex += textBox.SelectedText.Length;
textBox.SelectionLength = 0;
11
ответ дан 30 November 2019 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: