使用两种语言开发 windows 表单应用程序时奇怪的快捷键行为

Strange Shortcut Key behaviour when developing windows forms app in two languages

我最近 运行 遇到了一个相当棘手的 运行ge 问题:我在 Visual Studio 2017 年开发了一个 Windows Forms 应用程序 (C#)。初步实施已完成英文版(系统和 Visual Studio)。该应用程序具有多种形式,可以通过快捷键组合(例如ctrl + alt + P)打开。

现在,最近我不得不在安装了 germen Visual Studio 的德语系统上继续开发。我很惊讶,上面提到的捷径会导致建筑失败。只有在将快捷方式更改为 "Strg + ALt + P" 之后它才会起作用——但仅限于此系统;在 ENG 系统上构建失败,因为无法识别 "Strg"。

为什么 Visual Studio 天哪 Visual Studio 根据系统/版本语言考虑按键?不可能像键之类的东西依赖于语言,不是吗?这意味着,不可能开发出可以用多种语言构建的应用程序——而且有了这种多语言团队,将不再可能…… 我错过了什么?我已经尝试在 ENG 和 GER resx 文件中对快捷方式进行 t运行slate,但这也不能解决问题。 任何帮助将不胜感激 - 我被困在这里。

这是 Visual Studio 的 "feature"。已知解决方法:在代码中设置所有快捷方式,而不是在编辑器中设置。

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.