MainMenu 控件在使用 & 并按 ALT 时不显示下划线
Posted
技术标签:
【中文标题】MainMenu 控件在使用 & 并按 ALT 时不显示下划线【英文标题】:MainMenu control not displaying underlining when using & and pressing ALT 【发布时间】:2011-06-25 06:58:47 【问题描述】:我在 WinForm 中使用 MainMenu 控件(不是 MenuStrip)。在设计视图中,我可以在文本字段中放置一个 &,它会显示下划线,但是当程序运行时,我按 ALT 它不会出现。
由于某种原因,在顶层使用时,'&' 字符实际上被绘制(例如 &File)到显示器上。
以前有人遇到过这个问题并解决了吗?我已经四处搜索,除了自己绘制之外没有找到解决方案,但这似乎是一个应该可以解决的问题,因为它是控件的内置功能。
谢谢
【问题讨论】:
能发一些相关的代码吗? 显然下划线没有出现,因为 & 仍然可见。为什么无法猜测,这种行为是由 Windows 实现的,而不是由 .NET 代码实现的。不要写 &&File。 唯一对我有意义的解释是你的标题是 &&File @Hans 它只绘制在菜单的顶层。子菜单不显示 & 字符。我不是在写 &&... 问题是按下 ALT 键时没有出现下划线,它应该这样做。 按钮、标签等有一个 UseMnemonics 属性,可让您控制是否将 "&" 字符转换为文字或快捷方式钥匙。检查此设置是否适用于 Form/MainMenu/MenuItem 并将其设置为 true。这可能会解决您的问题。 【参考方案1】:Form.MainMenu
是否设置为您的MainMenu
?
对于 SubMenuItems 还要检查相关的窗口设置:在 WinXp 中,它位于 XP 上的显示属性/外观/效果下
【讨论】:
是的。按下 ALT 时它不会出现。这些设置是为了让下划线始终可见。即使在设计视图中我添加了下划线并且在那里可见,下划线也根本不会出现。 MainMenu 是旧控件还是什么?因为它没有出现在 VS 的工具窗格下(仅 MenuStrip),所以它让我想到如果它是 XP 之前的控件,可能无法使用此控件。 不,如果我没记错的话,.Net 1.x 和 2.x 支持 MainMenu。现在建议使用MenuStrip
,但为了向后兼容,使用MainMenu
仍然是100% 没问题的。【参考方案2】:
确保菜单中的项目具有属性
ShowShortCutKeys = true.
【讨论】:
以上是关于MainMenu 控件在使用 & 并按 ALT 时不显示下划线的主要内容,如果未能解决你的问题,请参考以下文章
Firemonkey 调整 MainMenu 字型大小 (D10)