KeyPressEventArgs.KeyChar的值与ctrl键

时间:2013-12-15 03:02:51

标签: c# winforms keypress

KeyPressEvent上我知道如何检测 CTRL 键何时关闭,但是我想得到 CTRL + [what?]。< / p>

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

1 个答案:

答案 0 :(得分:2)

我的建议是使用KeyDown事件而不是KeyPress,因为KeyPress使用已处理的输入。 KeyDown使用“原始”数据(不完全,但足以满足您的需要)。 KeyDown事件处理程序有一个参数,用于保存您需要的数据:KeyEventArgs