再winform中使用ProcessCmdKey处理快捷键响应,针对单一快捷键响应没有任何问题。但是针对组合键总是无法响应,如下:
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
if (keyData == (Keys.Control|Keys.C ))
{
MessageBox.Show("Ctrl+C");
return true;
}
return false;
}
找了不少解释,也没找到原因。
后来在StackOverflow上看到一个人说把顺序调换一下,亦即:
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
if (keyData == (Keys.C|Keys.Control))
{
MessageBox.Show("Ctrl+C");
return true;
}
return false;
}
就可以正常响应。
记录一下,希望其他人别踩坑了。