c# - KeyPressEventArgs.KeyChar 的值与 ctrl 键

标签 c# winforms keypress

KeyPressEvent 上,我知道如何检测 CTRL 键何时按下,但我想得到 CTRL+[什么? ].

CTRL+A, KeyChar = 1, CTRL+B给出 2,等等。检测 CTRL+a 输入的最佳方法是什么?

这是我的代码:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (ModifierKeys.HasFlag(Keys.Control))
    {
        Console.Write("(Ctrl) ");
    }
    Console.WriteLine(Convert.ToString(Convert.ToInt32(e.KeyChar)));
}

输入a, b, CTRL+a, CTRL+< kbd>b 给出:

97
98
(Ctrl) 1
(Ctrl) 2

最佳答案

我的建议是使用KeyDown事件而不是 KeyPress,因为 KeyPress 与处理过的输入一起工作。 KeyDown 使用“原始”数据(不完全是,但足以满足您的目的)。 KeyDown 事件处理程序有一个参数,其中包含您需要的数据:KeyEventArgs

关于c# - KeyPressEventArgs.KeyChar 的值与 ctrl 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20590746/

相关文章:

c# - 如何在 C# 中将数据源绑定(bind)到 .rdlc 报告

c# - Entity Framework 不保存新列

c# - 如何将 Bing map 组件添加到我的 C# Winforms 应用程序?

c# - 如何在 Windows 窗体 c# 中的 DataRepeater 中绑定(bind) userControls?

javascript - 如果用户在文本区域内按下 Enter 键,如何获取 html 元素 id

c# - 设置进度条超过 100% C#

c# - Bash 命令未通过 .net 核心进程执行

C# 主线程被第二个线程使用信号阻塞?

javascript - 检测按键上的字符

javascript - 在 JavaScript 中的按键上捕获 KeyCode