【问题标题】:ICSharpEditor and Accidental HotkeysICSharpEditor 和意外热键
【发布时间】:2009-09-01 18:53:42
【问题描述】:

我似乎对 ICSharpEditor 文本编辑器有点问题。它在 Windows 窗体应用程序中对我来说很好,除了如果我在定义热键的同一窗体上有一个按钮(或任何其他控件)(如用于保存按钮的 ALT-S),那么每当我尝试键入' S' 在文本编辑器中(或任何可能的热键),然后它会触发热键而不是将字符添加到文本中。

似乎在后台发生的事情是表单的所有控件的所有 ProcessMnemonic() 方法都会运行,因此这些方法会启动并处理按键,我认为只有在像 ALT 这样的键时才会发生这种情况-键被按下。

以前有人见过这种行为吗?任何解决方法或修复?

【问题讨论】:

    标签: c# vb.net


    【解决方案1】:

    .Net 表单并没有像许多人认为的那样实现 Mnemonics。 一个答案是覆盖表单中的 ProcessMnemonic,并阻止它被调用,除非用户按下 Alt 键。

    只需将其添加到您的表单类中:

    protected override bool ProcessMnemonic(char inputChar)
    {
        if (Control.ModifierKeys == Keys.Alt)
            return base.ProcessMnemonic(inputChar);
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 1970-01-01
      • 2012-05-06
      • 2018-04-02
      • 2017-10-30
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多