防止通过按下Alt键选择MenuStrip

3
我想使用alt键设置一些快捷方式,但是当我按下alt键时,菜单栏会被选中。如何禁用这种行为?

3
为什么你想让你的应用程序变得不那么可用? - Oded
我想要让它更易用,使用快捷键,但我的键盘上只有X个键。试着跟vim或emacs用户争论,他们的编辑器因为不使用本机组合键而不够易用。 - DaVinci
你知道吗?在编程中,你可以使用控制键、Alt键和Shift键的组合来实现更多功能。 - David Heffernan
1
ALT键允许用户访问MenuStrip上的每个项目,无论它是否分配了特定的快捷键。老实说,您不需要为每个功能分配快捷键,只需为最常用的功能分配即可。您可以在创建快捷方式时将ALT与CTRL组合使用,但不应单独使用它。当您发现使用CTRL、SHIFT、ALT和F键的组合已经用完快捷键时,您可能已经足够了。 - Cody Gray
慢下来一分钟,仔细考虑一下。在禁用键盘访问菜单之后,想想你的应用程序用户将如何通过键盘访问菜单。像 @Cody Gray 一样,通常情况下他说得很准确 - 太多的快捷方式会削弱拥有最重要操作的快捷方式的价值。 - David Heffernan
2个回答

2
这就是为什么在Windows上,不要使用ALT+键快捷键。你不应该试图破坏本地系统的行为。解决方案是选择不同的快捷键组合。

0

我知道这个帖子很旧了,但我遇到了同样的问题。

一个部分解决方案是使用“SendKeys.Send”函数来模拟第二次按下alt键。例如,要模拟用户按下“alt-0”:

sendkeys.send("%0")

这个方法的原理是按一次Alt键会激活菜单栏,但再按一次则会取消激活。

唯一的问题是,这也会让软件误认为用户已经松开了Alt键。所以如果你想在按住Alt键的同时按其他键,这个方法就不适用了。

由于按下Alt键会触发menustrip.activate事件,因此似乎应该有一种方法可以在代码中触发menustrip.deactivate事件,而不需要模拟另一个Alt键的按下,但我无法想出如何实现...


你可能需要为此创建一个单独的问题,因为很少有人会看到这个。 - George Yates

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接