2010-03-20 18 views
14

Przenoszę małą konsolę C++ do C# i wygląda na to, że nie mogę przestać drukować naciśnięć klawiszy na konsoli.Jak wyłączyć wyświetlanie naciśnięcia klawisza w konsoli w .NET?

W C++ uzyskać naciśnięcie klawisza z tą metodą, która również powstrzymania klawiszy od drukowanego do konsoli:

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

Próbowałem zrobić odpowiednik w C#, wykonując:

Key = Console.ReadKey(); 

Ale to nie powstrzymuje postaci przed drukowaniem na konsoli, co powoduje oczywiste problemy. Wszelkie pomysły, jak temu zaradzić?

Odpowiedz

28

Chcesz Console.ReadKey(true)

Pobiera następnego znaku lub funkcyjny klawisz wciśnięty przez użytkownika. Naciśnięty klawisz jest opcjonalnie wyświetlany w oknie konsoli.

Argument - który nazywa przechwycić:

Określa, czy wyświetlać wciśnięty klawisz w oknie konsoli. true, aby nie wyświetlać wciśniętego klawisza; w przeciwnym razie, false.

+0

To jest piękne, dzięki – RollRoll

Powiązane problemy