2016-11-21 36 views
1

嘿,我的wpf webbrowser有问题。例如,我不希望您按新快捷键“CRTL + N”。我已经发现如何去做,但如果我想处理更多的快捷方式,它只会阻止最后一个。我知道这将是非常简单的,但目前我不知道如何修复它。这里是我的代码:使用wpf webbrowser防止快捷方式

e.Handled = e.Key == Key.N && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 
     e.Handled = e.Key == Key.O && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 
     e.Handled = e.Key == Key.OemMinus && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 
     e.Handled = e.Key == Key.OemPlus && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 
     e.Handled = e.Key == Key.Subtract && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 
     e.Handled = e.Key == Key.Add && e.KeyboardDevice.Modifiers == ModifierKeys.Control; 

回答

1

你需要或你在一起的条件。

e.Handled = ((e.Key == Key.N) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)) || 
    ((e.Key == Key.O) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)) || 
    ((e.Key == Key.OemMinus) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)) || 
    ((e.Key == Key.OemPlus) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)) || 
    ((e.Key == Key.Subtract) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)) || 
    ((e.Key == Key.Add) && (e.KeyboardDevice.Modifiers == ModifierKeys.Control)); 

作为改性剂CTRL似乎是共同的,这可以从&简化代码会是这样的

e.Handled = (e.KeyboardDevice.Modifiers == ModifierKeys.Control) && 
    ((e.Key == Key.N) || (e.Key == Key.O) || (e.Key == Key.OemMinus) || ......) 

注意,我添加了括号,有些人会说是钥匙被分离出来不必要的,但我更喜欢他们的可读性。

+1

谢谢!有效 :) – nicoh