我是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)
}
答案 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)
示例:
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
}