2010-11-11 19 views
6

Usando C# ¿cómo puedo seleccionar todo el texto en un cuadro de texto cuando hago doble clic? Mi texto contiene espacios "Esto es una prueba", cuando hago doble clic de manera predeterminada solo se resalta una palabra, ¿cómo puedo resaltar todo el texto?C# ¿cómo puedo seleccionar todo el texto en un cuadro de texto cuando hago doble clic?

Lo que intento lograr es una forma rápida para que los usuarios limpien el texbox de texto, el texto exceda la longitud del cuadro para que no pueda seleccionar el final y arrastre hacia atrás para eliminar, debe hacer clic y usa el retroceso y borra las teclas para borrar el texto.

Gracias Alison

+0

La "solución" común es tenerlo todo seleccionado (ver respuesta de Ardman) en el evento OnFocus. Hacer doble clic para seleccionar todo el texto no es muy común, por lo que los usuarios no sabrán que existe. –

+0

También puede considerar seleccionar todo el texto en el cuadro de texto cuando recibe el foco (ya sea con la tecla de tabulación o un clic del mouse, como la barra de direcciones en un navegador web; consulte el evento 'OnFocus' para el cuadro de texto). Esto aún proporcionaría una forma rápida de eliminar el texto sin perder lo que muchos usuarios considerarían el comportamiento predeterminado de poder hacer doble clic para seleccionar una palabra. –

+0

también podría ser útil enseñar a sus usuarios acerca de 'Ctrl + a', o hacer que el texto del TextBox se ajuste (podría no ser posible debido a problemas de diseño/pantalla) – vlad

Respuesta

4
TextBox tb = new TextBox(); 
tb.SelectAll(); 

El cuadro de texto tiene un método SelectAll que se puede utilizar. Agréguelo en su controlador de eventos de doble clic.

1

Suponiendo que estamos hablando WindowsForms, entonces todo lo que tiene que hacer es conectar un manejador de sucesos para el evento de DoubleClick e invocar Seleccionar Todo

private void sampleTextBox_DoubleClick(object sender, EventArgs e) 
{ 
    sampleTextBox.SelectAll(); 
} 
+0

En su lugar, podría hacer lo siguiente: (remitente de (TextBox)) .SelectAll(); ... que es un poco más ordenado – nashwan

1

El control de cuadro de texto expone las propiedades SelectionStart y Length Length.

Simplemente tiene que conectar el evento de doble clic del cuadro de texto para establecer esas propiedades.

SelectionStart será 0. SelectionLength será la longitud del texto (fácilmente determinado por la propiedad Text).

En la edición: La solución anterior para usar SelectAll() es mucho más fácil.

+3

Overkill de bits cuando hay un método SelectAll. –

+0

De hecho. Recuerdo SelectionStart & Length de algún código donde necesitaba resaltar una parte del texto. Ni siquiera me di cuenta de que había una solución mucho más fácil. Para eso es intellisense. –

2

clics triples podría seleccionar todo el párrafo. Si cambia el comportamiento del doble clic, la selección de palabras podría ser un poco difícil.

Cuestiones relacionadas