2010-01-22 14 views

Respuesta

51

Para insertar simplemente el texto en la posición del cursor:

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

Para reemplazar el texto seleccionado con el nuevo texto:

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); 
0

Use TextBox.CaretIndex para modificar el texto vinculado a la propiedad TextBox.Text.

+0

No hay algo más sencillo? ¿Y qué pasa si el texto ya está seleccionado? ¿Cómo puede ser reemplazado por el nuevo texto? ¿Y cómo puedo hacer que el cursor se desplace a la vista? – Roice

+0

En realidad, esta ES una forma muy simple. – Thorsten79

+0

Pero no consideró mis otras necesidades: ¿Cómo puede ser reemplazado por el nuevo texto? ¿Y cómo puedo hacer que el cursor se desplace a la vista? – Roice

7

Encontré una solución aún más simple por mi cuenta:

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

Luego desplácese hasta la posición indicada por Tarsier.

+0

TextBox no tiene una propiedad SelectedIndex. Supongo que te refieres a SelectedText, y, sí, tienes razón, es más simple. – Tarsier

+0

Sí, me refería a SelectedText. Lo cambié en mi respuesta anterior. – Roice

9

Si desea mover el cursor después del texto insertado el código siguiente es útil

textBox.SelectedText = "New Text"; 
textBox.CaretIndex += textBox.SelectedText.Length; 
textBox.SelectionLength = 0; 
Cuestiones relacionadas