0

我是 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)
    }
4

6 回答 6

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
     }
}
于 2013-10-09T14:00:36.860 回答
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();
}
于 2013-10-09T13:59:53.613 回答
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);
}
于 2013-10-09T14:02:24.200 回答
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

于 2013-10-09T13:59:11.763 回答
0
 ConsoleKeyInfo keyinfo;
 keyinfo = Console.ReadKey();
 if (keyinfo == Keys.Esc || keyinfo == keys.Backspace)

应该做吗?

于 2013-10-09T14:01:08.650 回答
0

尝试这个

if (Console.ReadKey(true).Key == ConsoleKey.Escape)
{
    // do something
}
if (Console.ReadKey(true).Key == ConsoleKey.Backspace)
{
    // do something
}
于 2013-10-09T14:05:20.913 回答