如何在文本框中为搜索的字符串着色,Powershell Forms

如何在文本框中为搜索的字符串着色,Powershell Forms

尝试编写一个简单的 Powershell 表单来搜索字符串。两个文本框,一个用于输出,另一个用于搜索。

目标:编写一个字符串来查找 > 按下enter> 搜索到的字符串将在输出文本中以彩色显示(如果找到)

例子:

输出框 -text for example

搜索框 -ex

经过搜索行动后t/red>/ex/<red/t for /red>/ex/<red/ample

使用的代码来自链接1链接2到目前为止,有两个问题:

  1. appendtextreplace对我来说并不好,它弄乱了我的输出内容,试图用方法找到解决方案
  2. 我不知道为什么,但link2 中的SelectionStartSelectionLength对我来说不起作用。它没有选择文本,尽管它找到了正确的位置和正确的长度

搜索代码(link2文本选择案例):

$SearchInput = New-Object System.Windows.Forms.TextBox 
$SearchInput.Dock = "Bottom"
$Form.Controls.Add($SearchInput) 

$SearchInput.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{
    $pos = $outputBox.Text.IndexOf($($SearchInput.text))
    if ($pos -ne -1) { 
        $outputBox.SelectionStart = $pos
        $outputBox.SelectionLength = $($($SearchInput.text).Length)
    } 
}
})

输出框代码:

$outputBox = New-Object System.Windows.Forms.RichTextBox
$outputBox.Location = New-Object System.Drawing.Size(0,250) 
$outputBox.Size = New-Object System.Drawing.Size(780,405) 
$outputBox.MultiLine = $True 
$outputBox.ForeColor = "White"
$outputBox.BackColor = "Black"
$outputBox.ScrollBars = "Vertical" 
$outputBox.ReadOnly=$True
$Form.Controls.Add($outputBox) 

相关内容