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

伊戈尔

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

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

例子:

输出框 - text for example

搜索框 - ex

搜索操作后 - t/red>/ex/<red/t for /red>/ex/<red/ample

到目前为止使用了link1link2的代码,有两个问题:

  1. appendtext在我的情况下不好,它弄乱了我的输出内容,试图用replace方法找到解决方案
  2. 我不知道为什么,但SelectionStartSelectionLength从链接2不适合我的工作。它不选择文本,虽然它找到了正确长度的正确位置

搜索代码(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) 
笨拙的海雀

我对选择颜色 ( $outputBox.SelectionColor = 'red')进行了一些修改,并添加了为多次出现的单词 ex 着色的逻辑。

代码修改:

$SearchInput.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{
$counter = 0
$pos = $outputBox.Text.IndexOf($SearchInput.text,$counter)
 while($pos -ne -1) {
 $counter = $pos + $SearchInput.text.Length
$outputBox.SelectionStart = $pos
$outputBox.SelectionLength = $SearchInput.text.Length
$outputBox.SelectionColor = 'red'
$pos = $outputBox.Text.IndexOf($SearchInput.text,$counter)
}
}

脚本的独立工作版本:

add-type -assembly System.Windows.Forms
$form=New-Object System.Windows.Forms.Form
$form.StartPosition='CenterScreen'
$form.Size = New-Object System.Drawing.Size(1000,1000) 
$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.Text = "text for example"
$outputBox.ReadOnly=$True
$Form.Controls.Add($outputBox) 
$SearchInput = New-Object System.Windows.Forms.TextBox 
$SearchInput.Dock = "Bottom"
$Form.Controls.Add($SearchInput) 

$SearchInput.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{
$counter = 0
$pos = $outputBox.Text.IndexOf($SearchInput.text,$counter)
 while($pos -ne -1) {

 $counter = $pos + $SearchInput.text.Length
$outputBox.SelectionStart = $pos
$outputBox.SelectionLength = $SearchInput.text.Length
$outputBox.SelectionColor = 'red'
$pos = $outputBox.Text.IndexOf($SearchInput.text,$counter)
}
}
})

$form.ShowDialog()

PS:重复选择部分可以优化

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表单Dlookup文本框控件源

来自分类Dev

如何将用户表单文本框值与任意字符串连接在一起?

来自分类Dev

FileSystemWatcher更新表单上的文本框

来自分类Dev

如何在C#Winforms中的表单上为多个文本框控件调用Text_Changed事件

来自分类Dev

同步文本框(在表单中输入)

来自分类Dev

如何在yii2表单字段中对齐文本框?

来自分类Dev

Firefox 23中的表单文本框中缺少光标

来自分类Dev

如何在C#中使按钮,文本框,表单和组框的边缘变圆?

来自分类Dev

在文本框中如何在何时按ENTER提交表单以及何时按Shift + ENTER插入新行

来自分类Dev

如何在MS Access中将从表单上的文本框(对象)获取的值插入到“ LIKE”查询中

来自分类Dev

如何在HTML文本字段(以表单形式)中将包含空格的字符串设置为默认值?

来自分类Dev

HTML为表单创建文本框

来自分类Dev

Google脚本:使用表单中的输入文本框从表单中提取项目并显示为选项

来自分类Dev

如何在C#Winforms中的表单上为多个文本框控件调用Text_Changed事件

来自分类Dev

如何在连续表单页脚中将文本框的值设置为0“零”,而表单的详细信息没有数据MS Access

来自分类Dev

如何在一个表单上单击按钮并在另一个类中的字符串中获取文本框的值?

来自分类Dev

Javascript:如何获取表单中文本框的值,然后将其附加到预定义的字符串并将浏览器重定向到结果的值

来自分类Dev

SQL选择表字段部分与表单文本框字符串匹配的行

来自分类Dev

表单文本框中的JavaScript VAR

来自分类Dev

如何按Windows表单中的数字寻址文本框?

来自分类Dev

如何将从文本框(在用户表单中)输入的多行字符串转换为单行输入字符串(vba word)

来自分类Dev

如何使用与连续表单关联的文本框和查询进行实时搜索功能?

来自分类Dev

如何在 C# 中通过字符串访问 EventHandler 中的表单文本框?

来自分类Dev

如何在运行时在excel用户表单中添加文本框和命令按钮?

来自分类Dev

如何在多线程环境中搜索特定的字符串表单列表。?

来自分类Dev

ms-access 根据表单选项在文本框中生成字符串

来自分类Dev

使用 datatable() 计算 C# 表单文本框字符串

来自分类Dev

将字符串数组循环到文本框并从提交表单中发布,更改为 angular 7

来自分类Dev

如何在 vba 用户表单中以百分比格式输入 10-50 之间的数字文本框?

Related 相关文章

  1. 1

    表单Dlookup文本框控件源

  2. 2

    如何将用户表单文本框值与任意字符串连接在一起?

  3. 3

    FileSystemWatcher更新表单上的文本框

  4. 4

    如何在C#Winforms中的表单上为多个文本框控件调用Text_Changed事件

  5. 5

    同步文本框(在表单中输入)

  6. 6

    如何在yii2表单字段中对齐文本框?

  7. 7

    Firefox 23中的表单文本框中缺少光标

  8. 8

    如何在C#中使按钮,文本框,表单和组框的边缘变圆?

  9. 9

    在文本框中如何在何时按ENTER提交表单以及何时按Shift + ENTER插入新行

  10. 10

    如何在MS Access中将从表单上的文本框(对象)获取的值插入到“ LIKE”查询中

  11. 11

    如何在HTML文本字段(以表单形式)中将包含空格的字符串设置为默认值?

  12. 12

    HTML为表单创建文本框

  13. 13

    Google脚本:使用表单中的输入文本框从表单中提取项目并显示为选项

  14. 14

    如何在C#Winforms中的表单上为多个文本框控件调用Text_Changed事件

  15. 15

    如何在连续表单页脚中将文本框的值设置为0“零”,而表单的详细信息没有数据MS Access

  16. 16

    如何在一个表单上单击按钮并在另一个类中的字符串中获取文本框的值?

  17. 17

    Javascript:如何获取表单中文本框的值,然后将其附加到预定义的字符串并将浏览器重定向到结果的值

  18. 18

    SQL选择表字段部分与表单文本框字符串匹配的行

  19. 19

    表单文本框中的JavaScript VAR

  20. 20

    如何按Windows表单中的数字寻址文本框?

  21. 21

    如何将从文本框(在用户表单中)输入的多行字符串转换为单行输入字符串(vba word)

  22. 22

    如何使用与连续表单关联的文本框和查询进行实时搜索功能?

  23. 23

    如何在 C# 中通过字符串访问 EventHandler 中的表单文本框?

  24. 24

    如何在运行时在excel用户表单中添加文本框和命令按钮?

  25. 25

    如何在多线程环境中搜索特定的字符串表单列表。?

  26. 26

    ms-access 根据表单选项在文本框中生成字符串

  27. 27

    使用 datatable() 计算 C# 表单文本框字符串

  28. 28

    将字符串数组循环到文本框并从提交表单中发布,更改为 angular 7

  29. 29

    如何在 vba 用户表单中以百分比格式输入 10-50 之间的数字文本框?

热门标签

归档