可能重複:
how to handle key press event in console application檢測按鍵在控制檯
一個簡單的問題。
我正在寫一個簡單的基於文本的冒險遊戲的樂趣,我卡在第一部分已經!如何使我的控制檯檢查按鍵I.E:按Enter鍵繼續!
可能重複:
how to handle key press event in console application檢測按鍵在控制檯
一個簡單的問題。
我正在寫一個簡單的基於文本的冒險遊戲的樂趣,我卡在第一部分已經!如何使我的控制檯檢查按鍵I.E:按Enter鍵繼續!
您可以使用
Console.ReadKey();
閱讀1個鍵。那麼你可以做這樣的事情:
string key = Console.ReadKey().Key.ToString();
if(key.ToUpper() == "W")
Console.WriteLine("User typed 'W'!");
else
Console.WriteLine("User did not type 'W'");
或者:
if(key == "")
Console.WriteLine("User pressed enter!");
else
Console.WriteLine("User did not press enter.");
如果你如果用戶鍵入任何東西,但印刷機後進入不在乎,你可能只是做:
// Some code here
Console.ReadLine();
// Code here will be run after they press enter
如果用戶按下空格鍵? – Steve 2012-07-18 22:31:01
我編輯了帖子。謝謝。 – 3aw5TZetdf 2012-07-19 06:13:49
Console.Write("Press Enter to continue!")
Console.ReadLine();
直到用戶點擊Enter,程序纔會繼續。
您也可以使用Console.ReadKey
檢查其他特定鍵:
void WaitForKey(ConsoleKey key)
{
while (Console.ReadKey(true).Key != key)
{ }
}
用法:
Console.Write("Press 'Y' to continue.");
WaitForKey(ConsoleKey.Y);
如果我錯了,請糾正我,但是無論輸入什麼內容,這都不會讓它繼續嗎? – 2012-07-18 21:53:56
@NortonTaylor這會很奇怪,說*按回車繼續!* – user845279 2012-07-18 21:55:26
@NortonTaylor:你說得對,它將允許用戶繼續,無論輸入什麼*文本*;但直到用戶實際按下Enter鍵後纔會繼續。無論如何,我已經添加了一個等待任意密鑰的方法示例。 – 2012-07-18 21:58:22
的Console class包含讀取和寫入到 '控制檯'
所需的所有方法例如
Console.Write("Press Enter to continue!")
do
{
ConsoleKeyInfo c = Console.ReadKey();
} while (c.Key != ConsoleKey.Enter);
非常感謝你! – 2012-07-18 21:56:15
一個事件,這將做到這一點。
private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
Console.Write("Press Enter to continue!")
}
}
OP說這是一個控制檯應用程序...編輯:沒關係..你做了鬼祟的忍者編輯! – 2012-07-18 21:58:12
然後在那種情況下,'Console.ReadKey()'可能是最好的選擇。 – 2012-07-18 22:00:23
可能重複:http://stackoverflow.com/q/8898182/946904 – 2012-07-18 21:57:17
技術上講,它不是,我其實並沒有要求要顯示的關鍵。 – 2012-07-18 21:58:35
你是對的,它不是一個確切的重複,但如果你在這裏比較答案和答案,你會看到他們非常相似。 – 2012-07-18 22:03:33