我有一个带有主表单的应用程序。在这个表单中,我放置了三个 TActionMainMenuBar,因为应用程序本质上以三种不同的模式运行。
菜单栏都是由存储(代理)在主窗体上的 TActionManager 中的操作构成的。ActionManager 实际上引用了各种其他表单上的操作列表。
然后显示+启用和隐藏+禁用菜单栏,这样一次只有一个可见。这很好用,如果单击或使用 ALT 导航,然后使用箭头键或标题中带下划线的字符,则操作会运行。
然而问题是这些动作似乎没有响应任何快捷键的按下。
有谁知道是什么导致动作不触发?
如果需要,我很乐意提供更多信息,我正在使用 WinXP SP3 中的 C++Builder 2007 RAD Studio 进行编程。
感谢任何阅读此内容,甚至阅读此内容并提出解决方案的人!
彼得MJ
更新:我没有说明不同菜单中的快捷方式重叠,因为相同的快捷方式在不同的菜单中用于不同的操作,但所有快捷方式在自己的菜单中都是唯一的。
此后,我还简化了测试应用程序中的问题,使用两个 TActionMainMenuBar,所有操作共享一个操作管理器。在这种情况下,我有两个具有相同快捷方式的操作。它们被放置在不同的菜单上。然后一次启用一个菜单。在这种情况下,快捷方式确实有效,但是当使用通用快捷方式时,即使禁用了保持菜单,也只会触发第一个菜单中的操作。
这比我的实际问题略好,因为某些动作确实会触发,但突出显示这些动作没有被正确触发。有没有人没有解决方案?