0

我抓住了事件,但我需要保存点击的按钮。

例如获取修饰符+ e.key的方法

这是我的代码:

protected override void OnKeyDown(KeyEventArgs e)
        {       
            //base.OnKeyDown(e);
            if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.E)
            {
                MessageBox.Show(test.ToString());
            }    
        }

我试图结合两个键

 Key test = Key.Ctrl | e.Key ;

但它总是给出错误的结果,例如 Ctrl + E 由于上面的代码导致 J

我想保存它,我想让这些快捷方式通用UserControls

4

2 回答 2

1

尝试这样使用KeyGesture

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.Key ==Key.E && e.KeyboardDevice.Modifiers==ModifierKeys.Control)
    {
        KeyGesture keyGesture = new KeyGesture(e.Key, e.KeyboardDevice.Modifiers);
        if (keyGesture.Matches(null, e))
        {
            //This should match!
        }
    }
}
于 2012-10-29T16:05:20.677 回答
0

好的,因为我使用 silverlight4 ,我会使用

Tuple<ModifierKeys, Key> 

它工作得很好,性能也很好

于 2012-10-30T11:42:20.817 回答