Я использую считыватель штрих-кодов для получения штрих-кода от продуктов. я получаю код в текстовом поле. и я помещаю событие textchanged в это текстовое поле. но проблема в том, что когда штрих-код присваивает ему значение (например, если штрих-код состоит из 5 цифр), то событие textchanged запускается пять раз. как избавиться от этой штуки???
как использовать событие textChanged при считывании штрих-кода
Ответы (1)
Вы должны иметь возможность запрограммировать считыватель штрих-кода на вывод символа префикса и символа суффикса (один вывод перед отсканированным значением и один после него). Допустим, вы настроили его для вывода звездочки (*) перед значением отсканированных данных и вывода возврата каретки (CR) после него. Прикрепите обработчик к TextBox.PreviewTextInput
Событие и дождитесь символа звездочки:
private void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (e.Text == "*")
{
e.Handled = true;
// Data input has started
}
}
Вы можете использовать это, чтобы вывести сообщение «Сканирование...» или что-то еще, что вам нужно. Затем прикрепите обработчик к TextBox.KeyUp
Событие и дождитесь нажатия клавиши Enter:
private void KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
string scannedValue = ScanTextBox.Text.Replace("*", string.Empty);
// Do something with scannedValue
}
}
Теперь переменная scannedValue
должна содержать значение отсканированного штрих-кода.
person
Sheridan
schedule
03.10.2014
Cr
. Обработать событиеKeyPress
. Затем, еслиe.KeyChar = ChrW(13)
установитьe.Handled = True
. - person Bjørn-Roger Kringsjå   schedule 03.10.2014