在释放 Ctrl 键时,我无法在KeyUp事件处理程序中获取 Ctrl 键状态。
我是否必须测试事件参数的键码?
还有其他办法吗?
答案 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)
...
}