2014-02-05 4 views
0

그래서 콘솔 응용 프로그램에서 만든 게임을 작업하고 있습니다. 버튼을 누르면 (예 : 이스케이프) 일부 코드가 실행되고 실행됩니다. 그것이 무엇을 해야하는지.버튼에 이벤트를 할당하는 방법

나는 인터넷을 통해 검색 한 내가 볼 수있는 유일한 것은이 작동되지 않는이, 무엇이며 왜 모르겠어요 :

콘솔 응용 프로그램에서
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*()입니다.

위의 코드는 메시지 펌프가 있고 일반적으로 다르게 작동하는 Windows 양식 응용 프로그램에 바인딩 될 수 있습니다 (이벤트 지향, 줄 지향적). https://stackoverflow.com/a/5891612/3227403

관련 문제