2012-04-15 51 views
0

我在我的程序中使用ContextMenuStrip,显然它不会显示它的快捷键(助记符,那些应该在&之后的字母下显示为下划线),除非我按Alt,但是当我按下Alt时,显示的ContextMenuStrip将隐藏,因为表单的主菜单将获得焦点。因此,在上下文菜单中,从未见过助记符!有没有办法强制总是在菜单中显示助记符?

有没有办法强制这种行为对我的程序?我已经在其他地方读过,可以在系统设置中的某个地方更改它,但我需要使用我的软件的人始终能够看到助记符,而不需要他们在全局范围内更改他们的系统以使我的程序正常工作!

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

谢谢!

+0

这就是它应该如何工作。 如果顶部菜单上有助记符并按下Alt(该菜单的键),则助记符也会显示在子菜单中。 – Patrick 2012-04-15 16:11:06

+0

当您使用键盘激活菜单时,会出现助记符。使用Shift + F10表示我们使用键盘专用的快捷菜单键(如果有)。 – 2012-04-15 16:12:05

+0

可能是您正在考虑快捷键的属性,您可以在属性窗口中找到它作为设计者的一部分。这会给你更多的选择(如Shift和/或Ctrl等)。 – coder 2012-04-15 16:20:38

回答

2

这是一个操作系统设置:

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

+0

是的,我知道,我想也许有一种方法可以在我的软件中覆盖它。 – Istrebitel 2012-04-16 12:35:05

0

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

textBoxSomething.ContextMenuStrip = yourContextMenuStrip; 

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

+0

不幸的是,这是不可能的(我必须手动打开菜单),但即使它会,请告诉我如何设置“上下文菜单按钮”?当我将一个CMS分配给一个对象属性时,它仅对我打开右键点击 – Istrebitel 2012-04-16 12:34:33

+0

不确定,如果我理解你正确的话。上下文菜单按钮是键盘上的按钮,用于显示上下文菜单。特殊的Win按钮之一。无需分配任何东西。显然,当用鼠标右键单击时,它不能解决问题,但想要选择命令是键盘。 – Arek 2012-04-16 16:13:45

+0

啊我明白了。不,我正在使用上下文菜单作为弹出式编辑器,所以该按钮不会帮助。我的程序(其中的一部分)正在编辑像“变量等于值”这样的语句,用户点击或选择并按下“等于”,并弹出一个菜单,其中包含“大于”和“不等于”等所有可能的opton。用户选择。所以,我需要在点击或输入时显示它,而不是键盘上的“上下文菜单按钮”。 – Istrebitel 2012-04-17 09:12:19

相关问题