有没有办法强制始终在菜单中显示助记符?

时间:2012-04-15 16:02:58

标签: c# winforms contextmenustrip

我在我的程序中使用了ContextMenuStrip,显然,它不会显示其快捷键(助记符,那些应该在&前面的字母下显示为下划线的键),除非我按Alt键,但是当我按下Alt时,显示ContextMenuStrip将隐藏,因为表单的主菜单将获得焦点。因此,在上下文菜单中,永远不会看到助记符!

有没有办法强制我的程序启用此行为?我在其他地方读到你可以在系统设置的某处更改它,但我需要人们使用我的软件总是看到助记符,而不是要求他们全局更改系统以使我的程序正常工作!

当用户按Enter键时,我必须通过KeyDown事件处理程序中的代码显示此菜单,因为它是一个用于快速编辑由控件表示的值的弹出窗口。用户单击该控件并可以快速更改其内容。想想它就像在C#中,当你有一个弹出ctrl + space的弹出窗口时暗示你可以在这个确切的位置插入可能的代码snipplet。因此,将它用作控件的“上下文菜单”属性或使用键盘“显示上下文菜单”按钮不适用。

谢谢!

2 个答案:

答案 0 :(得分:2)

这是一个操作系统设置:

控制面板\所有控制面板项目\轻松访问中心\使键盘更易于使用\使键盘快捷键更容易使用\下划线键盘快捷键和访问键。

答案 1 :(得分:0)

更改上下文菜单的调用方式。不要手动显示,而是使用类似:

textBoxSomething.ContextMenuStrip = yourContextMenuStrip;

在这种情况下,如果用户右键单击文本框(或您使用的其他控件),他将获得没有助记符的菜单。但如果他使用键盘上下文菜单按钮来显示上下文菜单,则会显示助记符。