Winforms:不带约束力的快捷键文本

本文关键字:快捷键 文本 约束力 Winforms | 更新日期: 2023-09-27 18:25:21

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

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

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

有3种方法可以解决这个问题,我可以看到:

  • 从ScintillaNET控件中取消绑定密钥(无法找到如何执行此操作)
  • 找到一种方法来识别是单击了按钮还是快捷键
  • 在不实际应用快捷键的情况下,使其看起来像快捷键

有人知道如何做上面的其中一个吗?

我不希望覆盖绘制方法等。

编辑:

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

Winforms:不带约束力的快捷键文本

找到了!

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

public EditorForm()
{
    ....
    undoToolStripMenuItem.ShortcutKeyDisplayString = "Ctrl+Z";
    ....
}