C# Система. Windows .Forms.KeysConverter.ConvertToInvariantString возвращает локализованную строку - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь сохранить (и позже загрузить) сочетания клавиш, используя строки, в файле конфигурации.

Я работаю на немецком компьютере, и моя системная культура de-DE. Конечно, это дает противоречивые результаты преобразования по сравнению с другими системами, как, например, клавиша Ctrl на немецком языке называется Strg. Поэтому я хочу сохранить строки после преобразования с помощью InvariantCulture.

Я пытаюсь преобразовать Enum из Keys в строку, используя класс KeysConverter:

var conv = new KeysConverter();
var out = KeysConverter.ConvertToInvariantString(Keys.Control | Keys.M);
MessageBox.Show(out);

Но это просто выводит Strg+M вместо ожидаемого Ctrl+M.

Я также попытался использовать

var out = KeysConverter.ConvertToString(null, System.Globalization.CultureInfo.InvariantCulture, Keys.Control | Keys.M);

, который дал мне точно такой же результат.

Возможно, я что-то совершенно не понимаю, но в данный момент я просто не могу обернуть голову вокруг этого. У кого-нибудь есть подсказка о том, что я делаю неправильно, или он может объяснить мне это поведение?

Спасибо и всего наилучшего, iSnackyCracky

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