如果菜单包含子项,则Delphi TMenuItem OnClick无法正常工作

时间:2012-12-28 22:53:40

标签: delphi winapi

对于包含子项的菜单项,似乎不会处理Onclick个事件。

我意识到我可以创建一个用户可以使用的叶子项目,但我想让我的菜单文件夹回复OnClick(在我的情况下“启动”所有子项目)

有没有解决这个限制的方法?

1 个答案:

答案 0 :(得分:6)

包含子项的菜单项确实会触发OnClick个事件。但是当子菜单打开而不是单击父菜单项时它们会激活。

我很确定你不想在发生这种情况时调用所有子项。只要打开子菜单,就会触发父菜单的OnClick事件。当您单击父菜单项时,将鼠标悬停在其上,或者在通过键盘选择菜单项时按右箭头键。

因此,父菜单的OnClick事件对应于打开子菜单。在打开子菜单时调用所有子菜单项操作会违反所有标准的预期UI行为。您应该做的是添加另一个可用于调用所有操作的子项。除非没有合理的替代方案,否则不要违背平台标准UI。