在 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中文网其他相关文章!