Я работаю со сканером, который посылает мне штрих-код вроде этого: «¬00111111111112222222» как нажатые клавиши, такие как USB-клавиатура. Мне нужно установить Focus на TextBox всякий раз, когда я получаю префикс «¬».способ сравнения специальных символов
Проблема прямо сейчас заключается в том, что внутри моего события KeyDown KeyEventArgs является «Системой», а не символом моего префикса. Есть ли способ сравнить этот знак, чтобы установить Focus?
Кодекс Я попытался это:
private void KeyDownEvent(object sender, KeyEventArgs e)
{
if (Convert.ToString(e.Key) == "¬")
{
myTextBox.Focus();
}
}
Update: Я сейчас попробовал e.SystemKey и в этот момент, я получаю LeftAlt в качестве аргумента события. Так, возможно, AISCII-код преобразуется в этот SystemKey LeftAlt?
Обновление: Я записал все ключи, которые получаю при сканировании штрих-кода, и я заметил, что сам код ASCII не получаю, как я думал. Я получаю комбинацию клавиш, чтобы сделать этот символ «Alt + NumPad0 + NumPad7 + NumPad2», поэтому теперь мне нужно только сопоставить их с ASCII-кодом с символом «¬», а затем он должен работать. Спасибо за всю помощь.
Как насчет 'KeyInterop.VirtualKeyFromKey (e.Key);'? – Majestic
Нет, он остается пустым – Teroman
Вы уверены, что ваш сканер возвращает именно событие KeyDown? Обычно KeyEventArgs e должен содержать информацию о нажатой клавише. Как можно запустить событие KeyDown без какого-либо триггера? Есть ли способ получить всю строку или что-то еще? – ViVi