navegacion - Insertar texto en el cuadro de texto WPF en la posición de intercalación
c# wpf entity framework datagrid (4)
¿Cómo puedo insertar texto en un cuadro de texto WPF en la posición caret? ¿Qué me estoy perdiendo? En Win32 puedes usar CEdit :: ReplaceSel ().
Debería funcionar como si se invocara el comando Paste (). Pero quiero evitar usar el portapapeles.
Encontré una solución aún más simple por mí mismo:
textBox.SelectedText = "New Text";
textBox.SelectionLength = 0;
Luego desplácese hasta la posición indicada por Tarsier.
Para simplemente insertar texto en la posición de intercalación:
textBox.Text = textBox.Text.Insert(textBox.CaretIndex, "<new text>");
Para reemplazar el texto seleccionado con texto nuevo:
textBox.SelectedText = "<new text>";
Para desplazar el cuadro de texto a la posición de intercalación:
int lineIndex = textBox.GetLineIndexFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToLine(lineIndex);
Si desea mover el cursor después del texto insertado, el siguiente código es útil
textBox.SelectedText = "New Text";
textBox.CaretIndex += textBox.SelectedText.Length;
textBox.SelectionLength = 0;
Utilice TextBox.CaretIndex para modificar el texto vinculado a la propiedad TextBox.Text.