【发布时间】:2016-11-19 13:30:52
【问题描述】:
我正在用 C# 编写一个控制台应用程序,它使用 Console.ReadKey() 读取用户输入。它的代码类似于:
while(true)
{
switch(Console.ReadKey(true).Key)
{
case ConsoleKey.Enter:
//code
case ConsoleKey.UpArrow:
//code
case ConsoleKey.DownArrow:
//code
case ConsoleKey.Escape:
//code
}
}
现在的问题是,如果用户按住任何键超过半秒,Windows 会将其注册为多次按键。因此,例如,如果按住 Enter 键一秒钟,case ConsoleKey.Enter: 之后的代码会运行大约十次,我不希望这样。
如何使按住一个按钮仅注册为一次按键?我必须为此使用 Windows 窗体吗? (目前我的代码只依赖于 Console 类)。
【问题讨论】:
-
@HenkHolterman 如果有人故意向按钮发送垃圾邮件,我可以接受。如果代码不小心按住按钮太久,我只是不希望代码运行多次。
标签: c# loops input console-application console.readkey