如何将事件分配给按钮按下

时间:2014-02-05 16:08:03

标签: c# events button

所以,我一直在研究在控制台应用程序中制作的游戏,我想要做的是 - 当我按下一个按钮(例如:Escape)时,会执行一些代码并执行它所要做的事情。

我在互联网上搜索过,我发现的唯一一件就是这个,这是行不通的,我不知道为什么:

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

2 个答案:

答案 0 :(得分:0)

在控制台应用程序中,您应该使用Console.Read*()沿袭的输入法。

上面的代码可以绑定到一个Windows窗体应用程序,它有一个消息泵,通常工作方式不同(面向事件,而不是面向行)。

这回答了一个非常相似的问题:https://stackoverflow.com/a/5891612/3227403

答案 1 :(得分: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);
    }
}