VS2013开发C# WinForm应用按钮快捷键下划线显示异常问题咨询
这不是VS2013的Bug,是Windows的默认行为!
你遇到的这个现象其实是Windows系统和WinForms框架的设计默认行为,完全不是VS2013的bug哦。下面给你拆解原因和解决办法:
核心原因:Windows的快捷键下划线显示策略
从Windows Vista开始,系统默认开启了“仅在按下Alt键时显示快捷键下划线”的设置——这么做是为了让界面看起来更简洁,避免下划线干扰正常的视觉体验。WinForms作为适配Windows平台的UI框架,会自动遵循系统的这个显示规则,所以你打开窗体时看不到下划线,按下Alt键后(或者触发了任意快捷键操作后),系统会切换到“显示快捷键下划线”的状态,所有按钮的下划线就都出来了。
如何让下划线一直显示?
如果希望不管有没有按下Alt键,快捷键下划线都一直显示,有两种方式:
1. 修改系统全局设置
打开Windows的控制面板,找到外观和个性化 → 任务栏和导航(不同Windows版本路径可能略有差异),找到“始终显示菜单下划线”的选项并勾选。这个设置会影响所有遵循系统规则的Windows应用。
2. 通过代码强制窗体显示下划线
如果你只想让自己的WinForm应用显示下划线,不影响系统全局设置,可以在窗体类中重写ShowKeyboardCues属性:
protected override bool ShowKeyboardCues { get { return true; } }
把这段代码加到你的窗体类里,窗体加载后就会始终显示快捷键字母的下划线,不需要等待Alt键触发。
总结
你看到的现象是完全正常的设计行为,不是VS2013的问题。如果默认的显示方式不符合你的需求,用上面的两种方法就能调整啦!
内容的提问来源于stack exchange,提问作者Johnson




