C# 如何测试Ctrl键向上?

C# 如何测试Ctrl键向上?,c#,winforms,C#,Winforms,释放Ctrl键时,无法在KeyUp事件处理程序中获取Ctrl键状态 我必须测试事件参数的键代码吗 还有其他方法吗?将事件连接到KeyUp事件处理程序将起作用 释放Ctrl键时将触发以下代码: private void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.ControlKey) { MessageBox.Show("Control key up"); } }

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

我必须测试事件参数的键代码吗


还有其他方法吗?

将事件连接到
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
事件。

在KeyUp中,KeyUp事件处理程序中的e.modifiers==none,e.control==false。但是e.keycode==键。controlkey@Benny,
e.KeyCode
知道释放了哪把钥匙
e.Control
仅在按住控制键时为真,这就是为什么按住控制键释放F1时
(e.Control&&e.KeyCode==Keys.F1)
为真。
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if(e.Modifiers == Keys.Control)
     ...
}