Visual Studio resx文件中快捷方式的语言问题

aiqt4smr  于 2023-11-21  发布在  其他
关注(0)|答案(3)|浏览(157)

我使用的是德语版本的Visual Studio 2017。我们项目的另一个程序员使用的是英语版本。现在我们项目的.resx文件有问题了。我们创建了一些菜单项并给予它们键盘快捷键。因为我们是在英语版本中创建的,所以.resx文件中的快捷键名称是英语的:

<data name="Example.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
<value>Ctrl+O</value>

字符串
现在,如果我想编译德语版本的VS代码,我得到了以下错误:
一个X-日期。该命令的”控制“不应被执行。
用英语说:
无效的ResX文件。无法找到请求的值ウCtrl Ж。
可通过此编辑(“Strg”而不是“Ctrl”)更正错误:

<data name="Example.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
<value>Strg+O</value>


有没有更简单的方法来解决这个问题?因为像这样的捷径有很多,我们不可能每次都对每个捷径都这样解决错误。

9w11ddsr

9w11ddsr1#

这个问题也被描述为here
这个解决方案对我有效:

**您可以使用“中性”键名称,例如“Control”而不是“Ctrl”或“Strg”。**如果您在.resx文件中使用System.Windows.Forms.Keys中的键名称,则可以使用Visual Studio的所有语言版本打开它们。不幸的是,Windows Forms Designer保存.resx文件时使用损坏的(本地化的)键盘快捷方式。

eulz3vhy

eulz3vhy2#

https://developercommunity.visualstudio.com上有一个问题。是的,它可以通过使用“中性”键(如“Control”或“Delete”)来修复,但由于RESX文件是从表单设计器生成的,因此这些更改将被覆盖。WinForms Designer不允许将快捷方式设置为“Control”或“Delete”。

vwoqyblh

vwoqyblh3#

一个简单的解决方法是在代码中设置快捷键,而不是通过设计器:

public MainForm()
{
    InitializeComponent();
    LoginMenuItem.ShortcutKeys = Keys.Control | Keys.A;
}

字符串
这将不会在设计时显示快捷方式:
x1c 0d1x的数据
但会在执行过程中显示,例如在德语中:



或者用英语说:



.resx文件中的ShortcutKeys-entry已被删除,因此即使重新生成资源文件,也不会再发生此问题。

相关问题