Странное поведение сочетания клавиш при разработке приложений для форм Windows на двух языках - PullRequest
2 голосов
/ 05 ноября 2019

Недавно я столкнулся с довольно странной проблемой: я разработал приложение Windows Forms (C #) в Visual Studio 2017. Первоначальная реализация была сделана на английской версии (System и Visual Studio). Приложение имеет несколько форм, которые можно открыть с помощью сочетания клавиш (например, ctrl + alt + P).

Теперь, недавно мне пришлось продолжить разработку немецкой системы с установленной Germen Visual Studio. Я был довольно удивлен, что вышеупомянутые ярлыки приводят к разрушению здания. Только после изменения ярлыков на «Strg + ALt + P» это будет работать - но только в этой системе;в системе ENG сборка завершается неудачно, так как «Strg» не распознается.

Почему, ради бога, Visual Studio рассматривает ключи в зависимости от языка системы / версии? Не может быть, чтобы такие вещи, как ключи и так далее, зависели от языка, не так ли? Это означало бы, что невозможно разработать приложение, которое может быть построено на более чем одном языке - и с этим многоязычные команды больше не будут возможны ... Чего мне не хватает? Я уже пытался перевести ярлыки в файл resx ENG и GER, но это тоже не решило бы проблему. Любая помощь будет принята с благодарностью - я застрял здесь.

1 Ответ

1 голос
/ 05 ноября 2019

Это «особенность» Visual Studio. Известный обходной путь: установите все ярлыки в коде, а не в редакторе.

MSBuild не может обрабатывать файлы ресурсов
Проблемы с ярлыками (например, Ctrl + P) в файлах resx, когдаиспользование VS2017 и немецкого Windows
Есть ли способ исправить проблему с сочетанием клавиш Visual Studio ResX-Keyboard?

Другие возможные обходные пути, сложные, но выполнимые, если вы используете управление версиямисистема, будет использовать некоторые сценарии, которые будут поддерживать Ctrl в хранилище, но конвертировать его в Strg на стороне клиента, где это необходимо.

Одна вещь, на которую следует обратить внимание, этого не произойдет, если вы не наденетене пользуюсь локализацией. В этом случае все данные хранятся в исходном коде. Но если для свойства Localizable формы установить значение true, свойства сохраняются в файлах .resx. Microsoft знает о проблеме с давних пор, и не будет ее устранять. Предложенный обходной путь: используйте только английскую Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...