【发布时间】:2019-02-15 08:42:18
【问题描述】:
我正在开发一个 WinForms 应用程序,我想使用 Mnemonics 键。似乎由于 Windows 参数,您可以选择在使用应用程序时仅在按下 ALT 后显示它们(此选项与默认设置类似)。感谢question(顺便说一句,相关但不重复),我知道了这个选项。
我更改了此选项,助记符下划线在开始时正确显示。但我想避免用户必须打开此选项或必须按 ALT 才能看到带下划线的键。
所以我的问题是:应用内是否有强制助记键下划线而不更改设置或按 ALT 的情况?
【问题讨论】:
-
一般来说,对于“我想以与选项中明确设置的方式相反的方式做事,我可以”形式的问题的答案是“否”或“你应该” t",不管你是否喜欢微软的做法。下划线加速器的决定是基于various window messages。理论上,即使没有适当的用户输入,也可以诱使控件这样做;在实践中,这将涉及并且容易出错。除非您想完全自定义控件,否则这可能是一场失败的战斗。
-
用户“知道”,如果他们知道这些键,他们会按下 ALT 键来查看它们或更改他们的偏好。你为什么要颠覆用户的期望?
-
@JeroenMostert 这有点像我,但我想检查是否有办法。我想我会在创建表单时模拟一个 ALT 键来显示它。谢谢你确认。 Damien,因为有些人知道这一点,但有些人不经常使用这种应用程序并且对计算机并不了解。
-
如果您尝试这样的事情,请为更多困惑的用户做好准备,并且可能会破坏。例如,如果用户现在按下 Alt,改变主意并且没有按下加速键(或实际上不存在的快捷键),那么下划线仍然消失,并且会一直消失,直到再次按下 Alt。这是假设加速器首先继续工作,并且不会被您生成的 Alt 按键破坏!如果您需要在工作场所内保持一致性,正确的解决方案是组策略,而不是尝试在应用程序级别解决它。
-
另外,显然 (?) 和完整性 - 键盘快捷键的存在与否对您的应用程序永远不应该是至关重要的。如果因为用户很难或不可能访问某些内容而需要显示它们,那么您肯定做错了。
标签: c# .net winforms mnemonics