2017-09-06 134 views
0

我有一個PowerShell代碼。如何搜索RichTextBox中具有特定顏色格式的字符?或者任何顏色?在PowerShell中搜索顏色字符串

比方說紅色背景。我已經突出了文字的某些部分,並希望找到這些字符。

當前,我只搜索文本。我的代碼示例:

Function example-search { 

    $index = $resultbox.Find($SearchText, $resultbox.SelectionStart + $resultbox.SelectedText.length, [System.Windows.forms.RichtextBoxFinds]::None) 

    if($index -ge 0) 
    { 
     $resultbox.select($index, $searchText.length) 
     $resultbox.ScrollToCaret() 
    } 
    else 
    { 
     $index = $resultbox.Find($SearchText, 0, $resultbox.SelectionStart , 
     [System.Windows.forms.RichtextBoxFinds]::None) 
    } 

    if($index -ge 0) 
    { 
     $resultbox.select($index, $searchText.length) 
     $resultbox.ScrollToCaret() 
    } 
    else 
    { 
     $resultbox.SelectionStart = 0 
    } 

} 

回答

1

這裏是一個辦法做到這一點,它經過在richbox並檢查顏色名字中每個字。你可以把它重新安排你的需求

function SearchByColor 
{ 
    param ([string]$color) 

    $result = for ($i = 0; $i -lt $resultbox.TextLength; $i++) 
    { 
     $resultbox.Select($i, 1) 

     if ($resultbox.SelectionColor.Name -eq $color) 
     { 
      $resultbox.SelectedText 
     } 
    } 

    $result -join '' 
} 

要使用它:

SearchByColor Red 
+0

米奇你好,謝謝你的例子,但是這並不爲我工作。搜索遍歷文本並且沒有找到任何彩色文本。我可以同時使用SelectionColor.Name或SelectionBackColor.Name ... – Daniel

+0

您需要使用字符串版本的顏色名稱,例如「紅色」或「藍色」。你使用哪種顏色進行搜索,我可以看到我是否可以在這裏重現它。 –