我确信有一种简单的方法可以做到这一点,但我还没有找到任何东西。我正在尝试在VB.NET中编写代码,将密钥输入为ConsoleKeyInfo,然后运行一个代码块,如果密钥通常产生一个字符(A,5,:,Enter,Tab,¬等全部计数)。如果键是箭头键,winkey,修饰键等,则不应计算。这是我目前得到的解决方案,不太理想:
If Char.IsLetterOrDigit(CKI.KeyChar) Or Char.IsPunctuation(CKI.KeyChar) Or Char.IsWhiteSpace(CKI.KeyChar) Or Char.IsSymbol(CKI.KeyChar) Then
[Run code]
End If
答案 0 :(得分:0)
您可以将要过滤的密钥放入List(Of ConsoleKey)
。然后只需查看您的列表中是否包含ConsoleKeyInfo的.Key
属性:
Dim keylist As List(Of ConsoleKey) = New List(Of ConsoleKey)({ConsoleKey.DownArrow,
ConsoleKey.UpArrow,
ConsoleKey.LeftArrow,
ConsoleKey.RightArrow,
ConsoleKey.LeftWindows,
ConsoleKey.RightWindows})
Dim test As ConsoleKeyInfo = Console.ReadKey
If Not keylist.Contains(test.Key) Then
'run code
End If
还有一个用于特殊组合键的枚举,例如control-escape