Как использовать \n В текстовом поле
Я разрабатываю программу, в которой я использую строку (generatedCode
), которая содержит некоторые \n
для ввода новой строки в текстовом поле, которое я использую (textBox1.Text = generatedCode
), но когда Я запускаю программу, вместо того, чтобы нарушать эту строку, я вижу квадрат.
Помните, что я установил значение Multiline
textBox в True
.
Ответы
Ответ 1
Замените\n на \r\n - то, как элементы управления Windows представляют символы новой строки (но см. примечание внизу):
textBox1.Text = generatedCode.Replace("\n", "\r\n");
или
textBox1.Text = generatedCode.Replace("\n", Environment.NewLine);
Примечание. Как обсуждалось в комментариях, вы можете использовать Environment.NewLine
. Однако неясно - не определено, какой элемент разделителя строк Windows Forms должен использовать, если он не работает в Windows. Должны ли они использовать платформу по умолчанию или одну Windows (как порт управления Windows GUI)? Один из примеров в MSDN использует Environment.NewLine
, но до сих пор я видел ужасно неправильные примеры в MSDN, и в документации просто не указано, что должно быть.
В идеальном мире у нас будет только один разделитель строк - и даже во втором лучшем мире каждая ситуация будет четко определять, какой разделитель строк он ожидал...
Ответ 2
Обычно \r\n
возвращает мне новую строку в текстовое поле. Попробуйте заменить \n
на \r\n
, просто будьте осторожны, у вас нет сочетания \r\n
и \n
Ответ 3
так как использование \n проще в глазах (особенно при форматировании), а также иногда вы не контролируете, как создается исходная строка - я считаю, что наилучшей практикой является использование:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);
Ответ 4
Добавьте возврат каретки (\ r), и он должен работать:
TextBox1.Text = "First line\r\nSecond line";