Многострочный текстовый вывод Powershell - PullRequest
0 голосов
/ 27 августа 2018

Используя приведенный ниже код powershell, я пытаюсь вывести отдельные строки, но по какой-то причине отображается только последняя строка. Есть ли способ показать несколько строк в текстовом поле?

$objTextBox3 = New-Object System.Windows.Forms.TextBox 
$objTextBox3.Multiline = $True;
$objTextBox3.Location = New-Object System.Drawing.Size(10,160) 
$objTextBox3.Size = New-Object System.Drawing.Size(260,100) 
$objTextBox3.Scrollbars = "Vertical" 
$objForm.Controls.Add($objTextBox3)

$objTextBox3.Text = "TEST-" + $objTextBox2.Text + " FirstLine" + " (P) r`n  TEST-" + $objTextBox2.Text + "SecondLine" + " (P)"

Мысль с использованием r`n будет работать?

ТИА

1 Ответ

0 голосов
/ 28 августа 2018

Майк Шепард предоставил ключевой указатель в комментарии к вопросу:

Ваша строка отсутствовала ` до r, чтобы `r`n` расширился до CRLF newline - то есть в стиле Windows перевод строки состоит из символа CR ("`r"), за которым сразу следует LF символ ("`n").

Таким образом:

$objTextBox3.Text = "TEST-" + $objTextBox2.Text + " FirstLine" + " (P) `r`n  TEST-" + 
                    $objTextBox2.Text + "SecondLine" + " (P)"

Обратите внимание, что пробелы вокруг `r`n сохраняются.

В отличие от самого PowerShell - который обычно принимает CRLF, LF и CR новые строки взаимозаменяемо - WinForms [System.Windows.Forms.TextBox] элемент управления с .Multiline, установленным на $True распознает последовательности CRLF как новые строки с точки зрения отображения.

LF (-только) символ новой строки - который ваша строка ошибочно, но фактически использовалась - тихо игнорируется , когда отображает строку в графическом интерфейсе (хотя она сохраняется в свойство .Text элемента управления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...