如何测试Ctrl键?

Ben*_*nny 4 c# winforms

CtrlCtrl密钥被释放时,我无法获得KeyUp事件处理程序中的密钥状态.

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

还有其他方法吗?

Phi*_*rie 13

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

Ctrl释放密钥时将触发以下代码:

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


如果您想测试是否Ctrl与其他按键组合使用,例如:Ctrl+,F1则可能会应用以下代码段:

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


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