按Ctrl + a选择listview powershell中的所有内容

时间:2015-01-07 11:54:06

标签: powershell

我想在listview上使用 Ctrl + A ,默认情况下它不是一个选项。使用keypress事件来复制此行为无效。

Keypress适用于单键向下事件,但当我将它与键组合使用时,它不起作用。 为了测试,我尝试了以下方法:

$droper.Add_keypress({if ($_.KeyCode -Eq 17) {
                                           write-host "ctrl a pressed"}})

以上是成功的

$droper.Add_keypress({if ($_.KeyCode -Eq (17 -and 65) ) {
                                           write-host "ctrl a pressed"}})

这不起作用

$droper.Add_keypress({if (($_.KeyCode -Eq 17) -and ($_.KeyCode -Eq 65) ) {
                                           write-host "ctrl a pressed"}})

这也行不通 对此有任何帮助非常感谢!!

1 个答案:

答案 0 :(得分:1)

使用事件中的参数,特别是KeyEventArgs类型的$e

$droper.Add_keypress({
    param($sender, $e)
    if ($e.control) { write-host "ctrl a pressed"}
    })

请注意,$e包含Alt,Control和Shift(以及其他)的成员变量,这些变量是布尔值。

然后你可以这样做来检查是否按下了CTRL + A:

if($_.KeyCode -eq "A" -and $e.Control)
{
}