如何在.NET中抑制打印到控制台的按键?

时间:2010-03-20 18:52:06

标签: c# .net console

我正在将一个小型C ++控制台游戏移植到C#,似乎无法阻止按键被打印到控制台。

在C ++中,我使用此方法获得击键,这也可以抑制击键被打印到控制台:

bool Game::getInput(char *c)
{
    if (_kbhit())
    {
        *c = _getch();
        return true;
    }
    return false;
}

我尝试通过以下方式在C#中执行等效操作:

Key = Console.ReadKey();

但是这并没有抑制字符被打印到控制台,导致明显的问题。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:33)

您需要Console.ReadKey(true)

  

获取用户按下的下一个字符或功能键。按下的键可选择显示在控制台窗口中。

参数 - 称为拦截

  

确定是否在控制台窗口中显示按下的键。 true 不显示按下的键;否则, false

答案 1 :(得分:5)

ReadKey方法有overload that takes a bool作为参数。传递true,它不会在控制台中显示输入。