2013-10-09 30 views
0

我是C#的新手,正在用主菜單編寫基本控制檯應用程序。在程序的一部分中,我希望用戶能夠按退格鍵返回主菜單或按ESC鍵退出程序。C#visual basic express,如何檢查是否按下退格鍵或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) 
    } 

回答

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); 
} 
+0

我沒有錯誤,但是當按下這些鍵是不承認,並沒有改變當退格鍵被按下時,一個變量將我帶回主菜單 – crm

+0

您可以發佈代碼嗎? – Ovidiu

+0

對不起,它現在的作品,感謝您的幫助! – crm

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

Asuming,你是在一個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 
    } 
} 
0
ConsoleKeyInfo keyinfo; 
keyinfo = Console.ReadKey(); 
if (keyinfo == Keys.Esc || keyinfo == keys.Backspace) 

應該這樣做?

0

試試這個

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