Mencoba menulis formulir Powershell sederhana untuk mencari string. Dua kotak teks, satu untuk output dan yang kedua untuk pencarian.

Sasaran: menulis string untuk menemukan> tekan enter> string yang dicari akan diwarnai dalam teks keluaran (jika ditemukan)

Contoh:

OutputBox - text for example

Kotak pencarian - ex

Setelah tindakan pencarian - t/red>/ex/<red/t for /red>/ex/<red/ample

Kode yang digunakan dari link1 dan link2 sejauh ini, dan memiliki dua masalah:

  1. appendtexttidak baik dalam kasus saya, itu mengacaukan konten output saya, berusaha mencari solusi dengan replacemetode
  2. Saya tidak tahu mengapa, tetapi SelectionStartdan SelectionLengthdari link2 tidak bekerja untuk saya. Itu tidak memilih teks, meskipun ia menemukan posisi yang tepat dengan panjang yang tepat

Kode pencarian (case2 pemilihan teks):

$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)
    } 
}
})

Kode OutputBox:

$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) 
igor
sumber