我一直在寻找解决这个问题的方法。 (尝试解码这些但收效甚微:http://poshcode.org/4123 http://poshcode.org/4123 http://msdn.microsoft.com/en-us/library/dd30h2yb(v=vs.110).aspx)
这似乎应该是简单的事情,但我却在努力解决这个问题。似乎唯一的方法是使用selectionstart,selectionlength,selectioncolor,然后在打印时取消选择。我猜测我可能必须在算法上找出一种方法来只选择我想要的richtextbox的位置。我想在尝试这样做之前先问一下。
问题:
您如何选择在另一条线上开始选择?
有没有办法只为我想要的选择着色而无需在richtextbox中手动选择位置?**?
通常有更好的方法来实现这一目标吗?
此外,是否有人知道任何针对Powershell特定的Winforms的优秀资源或参考资料?
请帮忙。感谢。
以下是我尝试做的事情:
function UserInformation {
$userdata = Get-ADUser $34 -properties *
## IF LOCKED OUT, MAKE RED ##
if ($userdata.lockedout -eq $false) {
$outputBox.SelectionStart = #????
$outputBox.SelectionLength = #????
$outputBox.SelectionColor = [Drawing.Color]::Green
elseif ($userdata.lockedout -eq $true) {
$outputBox.SelectionStart = #????
$outputBox.SelectionLength = #????
$outputBox.SelectionColor = [Drawing.Color]::Red
}
## GUI ##
$outputBox = New-Object System.Windows.Forms.RichTextBox #creating the text box
$outputBox.Location = New-Object System.Drawing.Size(5,40)
$outputBox.Size = New-Object System.Drawing.Size(565,200)
$outputBox.MultiLine = $True
$outputBox.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right -bor
[System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$outputBox.ScrollBars = "Vertical"
$Form.Controls.Add($outputBox)
答案 0 :(得分:3)
你的帖子已经差不多一年了,你可能已经有了解决方案,但是我很幸运使用了ForeColor属性来使用RichTextBox表单。
https://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox_properties(v=vs.110).aspx
这是我在PowerShell中的代码:
$outputBox = New-Object System.Windows.Forms.RichTextBox
$outputBox.Location = New-Object System.Drawing.Size(8,175)
$outputBox.Size = New-Object System.Drawing.Size(870,428)
$outputBox.Font = New-Object System.Drawing.Font("Lucida Console",16)
$outputBox.ForeColor = [Drawing.Color]::Green
$outputBox.MultiLine = $True
$outputBox.ReadOnly = $True
然后根据需要在行中(在此示例中更改为绿色)
$outputBox.Font = New-Object System.Drawing.Font("Trebuchet MS",14)
$outputBox.ForeColor = [Drawing.Color]::Green
$outputBox.text="Please standby as we connect to Office 365. Updating commands ..."
答案 1 :(得分:0)
要执行此操作,您需要在每个新添加的行之前添加一个选择。新行必须通过以下方式添加:
AppendText()
此外,您还必须在换行的末尾加上`n 来设置换行符。
$outputBox.SelectionColor = [Drawing.Color]::Green
$outputBox.AppendText("text here...`n")