C# 中使用 PreviewKeyDown 和 KeyUp 事件处理按键按下和释放

本文介绍如何在 C# 的 Windows 窗体应用程序中使用 PreviewKeyDownKeyUp 事件来处理按键按下和释放。

**代码示例:**csharpprivate bool key1down = false;private bool key2down = false;private bool key3down = false;

private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e){ switch (e.KeyCode) { case Keys.A: if (!key1down) MessageBox.Show('A down'); key1down = true; break; case Keys.B: if (!key2down) MessageBox.Show('B down'); key2down = true; break; case Keys.C: if (!key3down) MessageBox.Show('C down'); key3down = true; break; }}

private void Form1_KeyUp(object sender, KeyEventArgs e){ switch (e.KeyCode) { case Keys.A: MessageBox.Show('A up'); key1down = false; break; case Keys.B: MessageBox.Show('B up'); key2down = false; break; case Keys.C: MessageBox.Show('C up'); key3down = false; break; }}

代码解释:

  1. 变量声明: - key1down, key2down, key3down: 这些布尔变量用于跟踪 A、B、C 键当前是否被按下。

  2. Form1_PreviewKeyDown 事件: - 当窗体接收到按键消息时触发此事件。 - 使用 e.KeyCode 获取按下的键,并与 Keys 枚举值进行比较。 - 如果检测到按下的是 A、B 或 C 键,则对应设置相应的布尔变量为 true,并显示 'down' 消息框。

  3. Form1_KeyUp 事件: - 当窗体接收到按键释放消息时触发此事件。 - 同样使用 e.KeyCode 获取释放的键。 - 如果检测到释放的是 A、B 或 C 键,则对应设置相应的布尔变量为 false,并显示 'up' 消息框。

优化建议:

  • 可以使用字典或数组来存储按键状态,以便更方便地管理多个按键。- 可以将消息框替换为其他操作,例如移动控件、触发游戏逻辑等。

希望这篇指南能帮助您理解如何在 C# 中使用 PreviewKeyDownKeyUp 事件处理按键按下和释放!

C# 中使用 PreviewKeyDown 和 KeyUp 事件处理按键按下和释放

原文地址: https://www.cveoy.top/t/topic/PJN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录