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());
            }    
        }

のような2つのキーを結合しようとしました

 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 に答える