开发者

How do I suppress keypress being printed to console in .NET?

I'm porting a small C++ console game to C# and it seems that I can't stop key presses from being printed to the console.

In C++ I get the keystroke with this method, which also suppress the keystrokes from being printed to the console:

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

I tried to do the equivalent in C# by doing:

Key = Console.ReadKey();

But this does not suppress the character from being printed to the console, causing obvious problems. Any ideas on how to remedy this?


You want Console.ReadKey(true)

Obtains the next character or function key pressed by the user. The pressed key is optionally displayed in the console window.

The argument - which is called intercept:

Determines whether to display the pressed key in the console window. true to not display the pressed key; otherwise, false.


The ReadKey method has an overload that takes a bool as a parameter. Pass in true and it will not display the input in the console.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜