【发布时间】:2017-10-26 18:35:07
【问题描述】:
我有一个非常简单的控制台应用程序,它安静地等待用户按下一个键,然后根据按下的键执行一个操作。我遇到了一些问题,但是this post 上的一些有用的用户指出了我哪里出错了。
我目前要处理单次按键的代码如下
ConsoleKey key;
do
{
while (!Console.KeyAvailable)
{
// Do something, but don't read key here
}
// Key is available - read it
key = Console.ReadKey(true).Key;
if (key == ConsoleKey.NumPad1)
{
Console.WriteLine(ConsoleKey.NumPad1.ToString());
}
else if (key == ConsoleKey.NumPad2)
{
Console.WriteLine(ConsoleKey.NumPad2.ToString());
}
} while (key != ConsoleKey.Escape);
我想知道如何检测何时按下 2 个或更多键的组合。我不是在谈论标准的 Ctrl + c,而是像 Ctrl + NumPad1 这样的东西。如果用户按下 Ctrl + NumPad1,则执行操作X。
我真的不确定该怎么做,因为当前的while 循环只会循环直到按下一个键,所以不会检测到第二个键(假设它几乎不可能同时按下两个键完全相同的时间。
有没有人能够指导正确的方向来帮助实现这一目标?
【问题讨论】:
标签: c# .net console-application listener keypress