Я использую эту библиотеку для перехвата ключей, и у меня есть некоторые проблемы при сравнении e.KeyCode.ToString () с той же строкой.
У меня есть переменная, которая является строковым эквивалентом
Keys.Oemtilde
->
Program.KeyboardTradeHotkey = "Oemtilde";
Я храню его в строке, потому что я читаю эту строку из файла XML, и у меня не получается найти способ конвертировать строку в Keys
.
Если я использую это так:
if (e.KeyCode.Equals(Keys.Oemtilde)) {
Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
} else {
// failed to catch - executes else
Logging.AddToLog("[Keyboard][PRESS]");
}
Работает нормально и: Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
выполняется.
Если я использую это:
if (e.KeyCode.ToString() == Program.KeyboardTradeHotkey) {
Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
} else {
// failed to catch - executes else
Logging.AddToLog("[Keyboard][PRESS]");
}
Выполняет условие else. Похоже, что сравнение строк в этом случае на самом деле не работает, даже если обе строки (e.KeyCode.ToString () и Program.KeyboardTradeHotkey одинаковы.
В чем может быть причина этого?