Como colorir uma string pesquisada na caixa de texto, Powershell Forms

1

Tentando escrever um formulário simples do Powershell para pesquisar strings. Duas caixas de texto, uma é para a saída, a segunda é para pesquisa.

Objetivo: escrever uma string para encontrar > pressione enter > A string pesquisada será colorida no texto de saída (se encontrado)

Exemplo:

OutputBox - text for example

SearchBox - ex

Após a ação de pesquisa - t/red>/ex/<red/t for /red>/ex/<red/ample

Código usado de link1 e link2 até o momento e tem dois problemas:

  1. appendtext não é bom no meu caso, isso atrapalha meu conteúdo de saída, tentando encontrar uma solução com replace method
  2. Não sei porque, mas SelectionStart e SelectionLength do link2 não funcionam para mim. Não seleciona o texto, embora encontre a posição correta com o comprimento correto

Código de pesquisa (caso de seleção de texto 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)
    } 
}
})

Código da caixa de saída:

$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) 
    
por igor 10.12.2017 / 08:31

0 respostas