2010-07-08 11 views
17

que tiene un cuadro de texto, y yo estoy tratando de imprimir en ella con la siguiente línea de código:C# - Cuadro de texto de nueva línea Problemas

logfiletextbox.Text = logfiletextbox.Text + "\n\n\n\n\n" + o + " copied to " + folderlabel2.Text; 

Dónde folderlabel 2 es, obviamente, un cuadro de texto. Lo primero que he puesto es el mismo cuadro de texto, para que no se borre ningún texto. Las nuevas líneas excesivas han probado mi problema, porque no hay nuevas líneas en el cuadro de texto (sí, configurado en líneas múltiples). La "o" es de tipo FileInfo en una matriz FileInfo.

¿Por qué estas nuevas líneas no aparecerán en el cuadro de texto?

+1

Necesita utilizar pares CRLF cuando inserta en un cuadro de texto \ r \ n. – Bill

Respuesta

37

Use "\ r \ n" en lugar de "\ n". Los cuadros de texto de Windows necesitan CRLF como terminadores de línea, no solo como LF.

Potencialmente se podría uso Environment.NewLine lugar - pero no saber qué cuadros de texto Mono hacen en términos de trabajar con "\ n" (que es lo que habría Environment.NewLine en una máquina Linux). Si comienza a poner cosas adicionales al final si usa "\ r \ n", eso romperá muchas de las aplicaciones existentes, pero si requiere "\ r \ n" eso rompería las aplicaciones que usan Environment.NewLine.

Environment.NewLine está destinada a ser la nueva línea predeterminada para toda la plataforma en la que se ejecuta, pero ¿qué ocurre si utiliza un kit de herramientas de widgets que hace una cosa, pero los archivos de texto suelen hacer otra cosa? Francamente es un desastre. Sería bueno si hubiera una propiedad TextBox.NewLine separada que las diferentes implementaciones podrían manejar apropiadamente.

+6

O mejor aún, use 'Environment.NewLine'. – Bobby

+0

@Bobby: No estoy seguro de que * sea * mejor - vea mi edición. –

+1

Una propiedad NewLine específica de TextBox estaría bien. Me pregunto si tendría sentido permitir que las aplicaciones de formulario establezcan esa propiedad en un valor específico. Es decir.si está usando un TextBox para mostrar texto para lectura/escritura en una base de datos, servicio web o cualquier cosa donde la convención de nueva línea no esté ligada a su plataforma actualmente en ejecución, entonces podría tener sentido permitirle al desarrollador configurar el TextBox cadena de nueva línea para unir el texto fuente/destino. –

3

creo cuadros de texto quieren una Environment.NewLine (que debe ser "\ r \ n")

Tenga en cuenta que debe ser el retorno de carro (\ r) seguido de la nueva línea (\ n). Si invierte el orden, no funcionará.

2

Un control TextBox espera un retorno de carro antes de su alimentación de línea (0x0D 0x0A). Use "\r\n" o System.Environment.Newline.

+1

Wow ... todos están en este. – mattmc3

2

en lugar de utilizar \ n podemos utilizar

Environment.NewLine

i esperan que ayude a

0

Ésta es la forma en que he creado de agregación y de nueva línea para la exhibición txtitems.Text = txtitems.Text + Environment.NewLine + dr [0] .ToString() + "" + dr [1] .ToString();

0

Cualquier persona que está utilizando VB.net, ya sea en la búsqueda de vbCr

Aquí se muestra un ejemplo:

retorno "Mi nombre es" & vbCr & "John" & vbCr & "Doe "

Cuestiones relacionadas