C# winform中组合键奇怪不响应问题

再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;
        }

就可以正常响应。

记录一下,希望其他人别踩坑了。

posted @ 2019-05-17 16:01  风疯  阅读(1111)  评论(2编辑  收藏  举报