2017-09-06 97 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

您需要使用字符串版本的颜色名称,例如“红色”或“蓝色”。你使用哪种颜色进行搜索,我可以看到我是否可以在这里重现它。 –