2

好的,有很多方法可以解决我的问题。标题描述了一个。

问题是我使用智能文本框控件(ScintillaNET)制作了一个编辑器,并且我希望在菜单上实现一个编辑->撤消按钮,该按钮还可以在文本中显示其快捷键。不幸的是,我不能简单地绑定它,因为它会导致 undo 事件被触发两次(一次是控件自己触发的,一次是我触发的)。

如果用户单击它(而不是快捷键),我仍然需要该按钮来运行撤消。

我可以看到有 3 种方法可以解决此问题:

  • 从 ScintillaNET 控件中取消绑定密钥(无法找到如何执行此操作)。
  • 找到一种方法来识别按钮是否被单击或快捷键。
  • 在没有实际应用的情况下制作快捷键的外观。

有谁知道如何做上述之一?

我宁愿不覆盖绘图方法等。

编辑:

我的问题有点不准确。它实际上是我需要检查的 ToolStripMenuItem。遗憾的是它没有 Focused 属性。

4

1 回答 1

4

找到了!

我在表单的构造函数中设置了 ShortcutKeyDisplayString 而没有实际设置快捷键。

public EditorForm()
{
    ....
    undoToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Z";
    ....
}
于 2013-07-29T05:18:31.243 回答