【问题标题】:prevent shortcuts with wpf webbrowser使用 wpf webbrowser 防止快捷方式
【发布时间】:2016-11-22 00:06:19
【问题描述】:

嘿,我的 wpf 网络浏览器有问题。例如,我不希望您可以按“CRTL + N”之类的快捷方式来打开新标签。我已经找到了怎么做,但是如果我想处理更多的快捷方式,它只会阻止最后一个。我知道这将非常简单,但我现在不知道如何解决它。这是我的代码:

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;

【问题讨论】:

    标签: c# wpf


    【解决方案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) || ...... )
    

    请注意,我添加了一些人会说没有必要的括号,但为了便于阅读,我更喜欢它们。

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多