使用下面的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
答案 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
属性中)。