Powershell(工作室) - 自动完成下拉值单击按钮?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell(工作室) - 自动完成下拉值单击按钮?相关的知识,希望对你有一定的参考价值。

我正在为powershell脚本构建一个GUI。它是Powershell工作室内置的一种形式。

我有这个代码运作良好:

(Get-Content ".historique.txt") | ? { $_.trim() -ne "" } | set-content ".historique.txt"
$postes_historique = Get-Content ".historique.txt"
$textboxPoste.AutoCompleteCustomSource.AddRange($postes_historique)

它采用“historique.txt”文本文件中的内容,并为文本框建议自动完成值,如下所示:

enter image description here

在该texbox上,我设置了KEYDOWN事件,因此当用户按下ENTER时,它会单击文本框下方的按钮:

$textboxPoste_KeyDown = [System.Windows.Forms.KeyEventHandler]{
    #Event Argument: $_ = [System.Windows.Forms.KeyEventArgs]
    if ($_.KeyCode -eq 'Enter')
    {
        $buttonConnexion.PerformClick()
    }

}

奇怪的部分和我的问题是:

- 如果我单击下拉列表中的值,则单击该按钮。 (不受欢迎的行为)

- 如果我删除了KeyDown输入事件,它不会单击该按钮。 (通缉行为)

这对我来说似乎很奇怪,就好像当你点击一个下拉值时,代码就像“你按下了”一样理解它。这有什么奇怪的相关性?我希望两者兼而有之,它能够按下输入点击按钮并且能够选择一个自动完成值而不会触发按钮点击...似乎没有太多要问,不是吗?

感谢您的时间。

答案

不确定是否有其他解决方案,但在这种情况下的解决方法是:

删除按下ENTER时单击按钮的keydown事件

通过将表单的AcceptButton设置为您的按钮来替换它。这样,当用户按下ENTER时,该按钮被触发,自动完成下拉列表按预期运行。

以上是关于Powershell(工作室) - 自动完成下拉值单击按钮?的主要内容,如果未能解决你的问题,请参考以下文章

输入是选择/下拉/自动完成,但也允许用户输入值 laravel

MVC5中的自动完成下拉菜单?

如何在下拉时自动完成可以更改列名的公式?

使用jQuery-UI来实现一个Ajax的自动完成功能(自动填充搜索框的下拉值)

从自动完成下拉列表中未选择任何选项时如何清除 mat- 自动完成

对于第一个句点之后的参数,自动完成/下拉框