我最近遇到了一个比较奇怪的问题:我在 Visual Studio 2017 中开发了一个 Windows 窗体应用程序 (C#)。最初的实现是在英文版本(System 和 Visual Studio)上完成的。该应用程序具有多种形式,可以通过快捷键组合(例如 ctrl + alt + P)打开。
现在,最近我不得不继续在安装了 germen Visual Studio 的德语系统上进行开发。我很惊讶,上面提到的捷径会导致建筑失败。只有在将快捷方式更改为“Strg + ALt + P”后,它才会起作用——但仅限于此系统;在 ENG 系统上,构建失败,因为无法识别“Strg”。
天哪,为什么 Visual Studio 会根据系统/版本语言来考虑键?不可能像键之类的东西依赖于语言,不是吗?这意味着,不可能开发出可以用多种语言构建的应用程序——而且有了这种多语言团队,将不再可能…… 我错过了什么?我已经尝试翻译 ENG 和 GER resx 文件中的快捷方式,但这也不能解决问题。 任何帮助将不胜感激 - 我被困在这里。
最佳答案
这是 Visual Studio 的一个“特性”。已知解决方法:在代码中设置所有快捷方式,而不是在编辑器中。
MSBuild cannot process resource files
Problems with shortcuts (e.g. Ctrl + P) in resx files when using VS2017 an a German Windows
Is there a way to fix Visual Studio ResX-Keyboard shortcut problem?
如果您使用版本控制系统,其他可能的解决方法虽然复杂但可行,但可以使用一些脚本来维护存储库中的 Ctrl
,但将其转换为 Strg
客户端,如果需要的话。
这里要注意一件事,如果您不使用本地化,就不会发生这种情况。在这种情况下,所有数据都存储在源代码中。但是,如果将表单的 Localizable
属性设置为 true,则属性将存储到 .resx 文件中。微软很久以前就知道这个问题,不会修复它。他们建议的解决方法:仅使用英文 Windows。
关于c# - 用两种语言开发 Windows 窗体应用程序时奇怪的快捷键行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711320/