C#visual basic express,我如何检查是否按下了退格键或esc

时间:2013-10-09 13:53:56

标签: c# visual-studio-2010 keyboard

我是C#的新手,正在编写一个带有主菜单的基本控制台应用程序。在程序的一部分中,我希望用户能够按退格键以返回主菜单或按ESC退出程序。

如何判断是否按下了退格键和ESC?

我认为它不像检测到的字母和数字那么简单吗?

例如id:

    // Press backspace to go back to main menu or press esc to exit program
    Console.WriteLine("Press BACKSPACE to return to main menu, or ESC to quit.");
    if(backspace.ispressed )
    {
      menuOption = Console.ReadLine();

    }else if(esc.ispressed){

      Environment.Exit(0)
    }

7 个答案:

答案 0 :(得分:2)

假设您处于WinForms环境中,则需要绑定到控件上的KeyDown事件。例如,如果要在TextBox元素上进行检查,可以执行以下操作:

this.TextSearch.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextSearchKeyDown)
private void TextSearchKeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Escape)
     {
         // Do stuff
     }
}

答案 1 :(得分:1)

Console.ReadKey

上查看此页面

示例:

var cki = Console.ReadKey();
if(cki.Key == ConsoleKey.Escape)
{
    Environment.Exit(0)
}
else if(if (cki.Key == ConsoleKey.Backspace)
{
    menuOption = Console.ReadLine();
}

答案 2 :(得分:1)

使用Console.ReadKey()检测正在按下的键

Console.WriteLine("Press BACKSPACE to return to main menu, or ESC to quit.");
ConsoleKeyInfo key = Console.ReadKey();
if (key.Key == ConsoleKey.Backspace)
{
    menuOption = Console.ReadLine();

}else if (key.Key == ConsoleKey.Escape){

    Environment.Exit(0);
}

答案 3 :(得分:0)

http://msdn.microsoft.com/en-us/library/471w8d85.aspx

此处的代码使用Console.ReadKey()填充密钥对象,然后针对ConsoleKey.Escape检查.key属性

此处的ConsoleKey文档: http://msdn.microsoft.com/en-us/library/system.consolekey.aspx

答案 4 :(得分:0)

对于控制台应用,请查看MSDN上的这篇文章:

http://msdn.microsoft.com/en-us/library/system.consolekeyinfo.keychar.aspx

答案 5 :(得分:0)

 ConsoleKeyInfo keyinfo;
 keyinfo = Console.ReadKey();
 if (keyinfo == Keys.Esc || keyinfo == keys.Backspace)

应该这样做吗?

答案 6 :(得分:0)

试试这个

if (Console.ReadKey(true).Key == ConsoleKey.Escape)
{
    // do something
}
if (Console.ReadKey(true).Key == ConsoleKey.Backspace)
{
    // do something
}