在控制台中检测按键

时间:2012-07-18 21:49:51

标签: c#

  

可能重复:
  how to handle key press event in console application

一个简单的问题。

我正在编写一个简单的基于文本的冒险游戏,我已经被困在第一部分!如何让我的控制台检查按键I.E:按Enter继续!

4 个答案:

答案 0 :(得分:8)

您可以使用

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

答案 1 :(得分:7)

Console class包含读取和写入“控制台”所需的所有方法

例如

Console.Write("Press Enter to continue!")  
do
{
    ConsoleKeyInfo c = Console.ReadKey();
} while (c.Key != ConsoleKey.Enter);

答案 2 :(得分:2)

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);

答案 3 :(得分:1)

一个可以做到的事件。

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
        if (e.Key == Key.Return)
        {
            Console.Write("Press Enter to continue!")
        }
 }