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.
精彩评论