我想在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"}})
这也行不通 对此有任何帮助非常感谢!!
答案 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)
{
}