2014-02-05 4 views
0

Итак, я работаю над игрой, созданной в консольном приложении, и что я хочу сделать - когда я нажимаю кнопку (Пример: Escape), выполняется какой-то код, и он делает что ему говорят.Как назначить событие нажатию кнопки

Я искал через Интернет, и единственное, что я нашел это, что не работает, и я не знаю, почему:

void WindowCloseOnEsc_KeyDown(object sender, KeyEventArgs e) // does not know what 
{               // is this "KeyEventargs" 
    if (e.KeyCode == Keys.Escape) 
    { 
     Environment.Exit(0); 
    } 
} 
+1

Это событие WinForms. Вы не можете использовать это с консолью. – SLaks

+0

- это то, что workf ro вы ?? –

ответ

0

вы можете использовать

Console.ReadKey Method слушать клавишу нажатой пользователем приложения.

class Example 
{ 
    public static void Main() 
    { 
     ConsoleKeyInfo cki; 
     // Prevent example from ending if CTL+C is pressed. 
     Console.TreatControlCAsInput = true; 

     Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key."); 
     Console.WriteLine("Press the Escape (Esc) key to quit: \n"); 
     do 
     { 
     cki = Console.ReadKey(); 
     Console.Write(" --- You pressed "); 
     if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+"); 
     if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+"); 
     if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+"); 
     Console.WriteLine(cki.Key.ToString()); 
     } while (cki.Key != ConsoleKey.Escape); 
    } 
} 
0

В консольном приложении вы должны использовать методы ввода от линии Console.Read*().

Приведенный выше код может быть связан с приложением формы окна, в котором есть насос сообщений и, как правило, работает по-разному (ориентирован на события, а не на линию).

Это ответ на очень похожий вопрос: https://stackoverflow.com/a/5891612/3227403

Смежные вопросы