Powershell多行文本框输出

时间:2018-08-27 20:13:09

标签: powershell

使用下面的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可以吗?

TIA

1 个答案:

答案 0 :(得分:1)

Mike Shepard在对该问题的评论中提供了关键指针:

您的字符串在`之前缺少r,以便使`r`n`扩展为 CRLF newline-即由Windows CR character"`r")组成的Windows风格的换行符,其后紧跟着LF character"`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设置为{{1} } only 仅将CRLF序列识别为换行符。

一个LF(仅)换行符-您的字符串被错误地使用,但实际上已被使用-在GUI中显示该字符串时,它被悄悄地忽略(尽管已保留)在控件的$True属性中)。