首页 >后端开发 >C++ >如何在 C# 控制台应用程序中捕获和处理按键事件?

如何在 C# 控制台应用程序中捕获和处理按键事件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-04 12:38:40804浏览

How Do I Capture and Process Key Press Events in C# Console Applications?

在 C# 控制台应用程序中处理按键事件

在 C# 控制台应用程序中,通过按键监视用户输入对于交互式程序至关重要。出现一个常见问题:我们如何捕获和处理按键事件?

错误的方法

提供的代码片段尝试使用 PreviewKeyDownEventArgs 事件来监听按键。但是,这种方法对于控制台应用程序来说是不正确的,因为它属于 Windows 窗体应用程序。

正确方法

要处理控制台应用程序中的按键事件,我们可以使用Console 类的 ReadKey() 方法。此方法等待用户按下某个键并返回一个 ConsoleKeyInfo 对象,其中包含有关按下的键的信息。

下面是一个捕获并显示用户按下的键的示例程序:

public class Program
{
    public static void Main()
    {
        ConsoleKeyInfo keyinfo;
        do
        {
            keyinfo = Console.ReadKey();
            Console.WriteLine(keyinfo.Key + " was pressed");
        }
        while (keyinfo.Key != ConsoleKey.X);
    }
}

说明

ReadKey() 方法从控制台输入缓冲区读取单个按键并将其存储在 keyinfo 变量中。 ConsoleKeyInfo 对象的 Key 属性表示按下的键。

do-while 循环不断提示用户输入,直到按下“X”键(退出程序)。每次按下某个键时,其值都会显示在控制台上。

注意:此方法需要控制台应用程序具有焦点。要捕获系统范围内的按键事件,请考虑使用 Windows 挂钩,这是一种更先进的技术。

以上是如何在 C# 控制台应用程序中捕获和处理按键事件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn