如何禁止将按键打印到 .NET 中的控制台?

问题描述 投票:0回答:2

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

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

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

我尝试在 C# 中执行等效操作:

Key = Console.ReadKey();

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

c# .net console
2个回答
49
投票

你想要

Console.ReadKey(true)

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

参数 - 称为 截距:

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


6
投票

ReadKey
方法有一个重载,它接受 bool 作为参数。传入
true
,控制台就不会显示输入了。

© www.soinside.com 2019 - 2024. All rights reserved.