c# - cambiar - Cómo usar / n en un cuadro de texto
cambiar el color del borde de un textbox c# (4)
Estoy desarrollando un programa que estoy usando una cadena (código generatedCode
) que contiene algunos /n
para ingresar una nueva línea en el cuadro de texto que lo estoy usando ( textBox1.Text = generatedCode
), pero cuando estoy ejecutando El programa, en lugar de romper esa línea estoy viendo un cuadrado.
Recuerda que he establecido el valor de multilínea de textBox en True
.
Agregue un retorno de carro (/ r) y debería funcionar:
TextBox1.Text = "First line/r/nSecond line";
Por lo general, /r/n
me da una nueva línea en un cuadro de texto. Intente reemplazar su /n
con /r/n
solo tenga cuidado de no tener una mezcla de /r/n
y /n
Reemplace / n con / r / n - así es como los controles de Windows representan nuevas líneas (pero vea la nota en la parte inferior):
textBox1.Text = generatedCode.Replace("/n", "/r/n");
o
textBox1.Text = generatedCode.Replace("/n", Environment.NewLine);
Nota: Como se comentó en los comentarios, es posible que desee utilizar Environment.NewLine
. No está claro, sin embargo, no está bien definido qué separador de línea deben usar los controles de Windows Forms cuando no se ejecutan en Windows. ¿Deberían usar la plataforma predeterminada o la de Windows (ya que es un puerto de un control GUI de Windows)? Uno de los ejemplos en MSDN utiliza Environment.NewLine
, pero he visto ejemplos horriblemente incorrectos en MSDN antes, y la documentación simplemente no indica cuál debería ser.
En un mundo ideal, solo tendríamos un separador de línea, e incluso en un segundo mejor mundo, cada situación definirá claramente qué separador de línea esperaba ...
ya que usar / n es más fácil para los ojos (especialmente cuando se formatea), y también a veces no controlas cómo se construye la cadena de origen. Creo que lo mejor es usar:
TextBox1.Text = str.Replace("/r/n", "/n").Replace("/n", Environment.NewLine);