Información general sobre TextBox

La clase TextBox le permite mostrar o editar texto sin formato. TextBox se usa habitualmente para editar texto sin formato en un formulario. Por ejemplo, en un formulario que solicita el nombre de usuario, el número de teléfono, etc., se usarían controles TextBox para la entrada de texto. En este tema se presenta la clase TextBox y se proporcionan ejemplos de cómo usarlo en los lenguajes XAML y C#.

¿TextBox o RichTextBox?

Tanto TextBox como RichTextBox permiten a los usuarios introducir texto. Sin embargo, ambos controles se utilizan en diferentes escenarios. Un control TextBox exige menos recursos del sistema que uno RichTextBox, por lo que resulta ideal cuando solo se necesita editar texto sin formato (p. ej., en un formulario). El control RichTextBox es una mejor opción cuando el usuario necesita editar texto con formato, imágenes, tablas u otro contenido compatible. Por ejemplo, la edición de un documento, artículo o blog que requiera formato, imágenes, etc. se logra mejor con RichTextBox. En la tabla siguiente se resumen las características principales de TextBox y RichTextBox.

Control Revisión ortográfica en tiempo real Menú contextual Comandos de formato como ToggleBold (Ctr+B) Contenido FlowDocument como imágenes, párrafos, tablas, etc.
TextBox No No.
RichTextBox Sí (consulte RichTextBox Overview[Introducción a RichTextBox]) Sí (consulte RichTextBox Overview[Introducción a RichTextBox])

Nota

Aunque TextBox no admite comandos de edición relacionados con el formato, como ToggleBold (Ctrl+B), hay muchos comandos que son compatibles con ambos controles, como MoveToLineEnd. Consulte EditingCommands para obtener más información.

Las características admitidas por TextBox se tratan en las secciones siguientes. Para obtener más información sobre RichTextBox, consulte Información general sobre el control RichTextBox.

Revisión ortográfica en tiempo real

Puede activar la revisión ortográfica en tiempo real en un TextBox o RichTextBox. Cuando se activa la revisión ortográfica, aparece una línea roja debajo de las palabras con errores de ortografía (consulte la siguiente imagen).

Textbox con revisión ortográfica

Consulte Cómo habilitar el corrector ortográfico en un control de edición de texto para más información sobre cómo activar la revisión ortográfica.

Menú contextual

Tanto TextBox como RichTextBox cuentan de forma predeterminada con un menú contextual que aparece cuando el usuario hace clic con el botón derecho del mouse dentro del control. El menú contextual permite al usuario cortar, copiar o pegar (consulte la siguiente imagen).

TextBox con menú contextual

Puede crear su propio menú contextual personalizado para invalidar el comportamiento predeterminado. Consulte Use a Custom Context Menu with a TextBox (Usar un menú contextual personalizado con TextBox) para más información.

Crear controles TextBox

Un control TextBox puede tener una sola línea de alto o constar de varias líneas. Un TextBox de una sola línea es mejor para introducir pequeñas cantidades de texto sin formato (p. ej., "Nombre", "Número de teléfono", etc. en un formulario). En el siguiente ejemplo de código se muestra cómo crear un TextBox de una sola línea.

<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>
    <TextBox Width="200" MaxLength="100" />
  </StackPanel>
</Page>

También puede crear un control TextBox que permita al usuario escribir varias líneas de texto. Por ejemplo, si en el formulario se pide una pequeña biografía del usuario, querría usar un control TextBox que admita varias líneas de texto. En el siguiente ejemplo se muestra cómo usar el lenguaje XAML para definir un control TextBox que se expande automáticamente para dar cabida a varias líneas de texto.

<TextBox
  Name="tbMultiLine"
  TextWrapping="Wrap"
  AcceptsReturn="True"
  VerticalScrollBarVisibility="Visible"
>
  This TextBox will allow the user to enter multiple lines of text.  When the RETURN key is pressed, 
  or when typed text reaches the edge of the text box, a new line is automatically inserted.
</TextBox>

Establecer el atributo TextWrapping en Wrap hace que el texto se ajuste a una nueva línea cuando se alcance el borde del control TextBox. El control TextBox se expandirá automáticamente para incluir espacio para una nueva línea (si se necesita).

Al establecer el atributo AcceptsReturn en true, se inserta una nueva línea cuando se presiona la tecla de retorno, lo cual, una vez más, expande automáticamente el control TextBox para incluir espacio para una nueva línea (si se necesita).

El atributo VerticalScrollBarVisibility agrega una barra de desplazamiento al control TextBox, de modo que se puede ver todo el contenido de TextBox al expandir el control TextBox más allá del marco o la ventana que lo contiene.

Para más información sobre las distintas tareas asociadas al uso de TextBox, consulte los temas "Cómo…".

Detectar los cambios de contenido

Normalmente, se debería usar el evento TextChanged, y no KeyDown, como cabría esperar, para detectar los cambios en el texto en TextBox o RichTextBox. Consulte Detect When Text in a TextBox Has Changed (Detectar cuándo cambia el texto en un control TextBox) para ver un ejemplo.

Vea también