Как использовать \ n в текстовом поле - PullRequest
21 голосов
/ 17 ноября 2009

Я разрабатываю программу, в которой я использую строку (generatedCode), которая содержит некоторые \n для ввода новой строки в текстовом поле, которое я использую (textBox1.Text = generatedCode), но когда Я запускаю программу, вместо того, чтобы ломать эту линию, я вижу квадрат.

Помните, что я установил Multiline значение textBox на True.

Ответы [ 4 ]

44 голосов
/ 17 ноября 2009

Замените \ 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, и в документации просто не указано, что должно быть.

В идеальном мире у нас был бы только один разделитель строк - и даже во втором лучшем мире каждая ситуация четко определяла, какой разделитель строк ожидался ...

8 голосов
/ 16 февраля 2012

, поскольку использование \ n проще для глаз (особенно при форматировании), а также иногда вы не контролируете, как создается исходная строка - я считаю, что рекомендуется использовать:
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);

6 голосов
/ 17 ноября 2009

Обычно \r\n переводит меня на новую строку в текстовом поле. Попробуйте заменить \n на \r\n, но будьте осторожны, у вас нет сочетаний \r\n и \n

4 голосов
/ 17 ноября 2009

Добавьте возврат каретки (\ r), и он должен работать:

TextBox1.Text = "First line\r\nSecond line";
...