如何测试Ctrl键?

时间:2009-08-23 14:53:32

标签: c# winforms

在释放 Ctrl 键时,我无法在KeyUp事件处理程序中获取 Ctrl 键状态。

我是否必须测试事件参数的键码?

还有其他办法吗?

2 个答案:

答案 0 :(得分:13)

将事件连接到KeyUp事件处理程序将起作用。

释放 Ctrl 键时会触发以下代码:

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.ControlKey)
    {
        MessageBox.Show("Control key up");
    }
}


如果你想测试 Ctrl 是否与另一个击键一起被按下,例如: Ctrl + F1 那么下面的代码代码段可能适用:

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.F1)
    {
        MessageBox.Show("Control + F1 key up");
    }
}


附注:您可能必须在表单上启用KeyPreview才能在单个位置捕获所有控件KeyUp事件。

答案 1 :(得分:0)

private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if(e.Modifiers == Keys.Control)
     ...
}