как использовать событие textChanged при считывании штрих-кода

Я использую считыватель штрих-кодов для получения штрих-кода от продуктов. я получаю код в текстовом поле. и я помещаю событие textchanged в это текстовое поле. но проблема в том, что когда штрих-код присваивает ему значение (например, если штрих-код состоит из 5 цифр), то событие textchanged запускается пять раз. как избавиться от этой штуки???


person pasha pash    schedule 03.10.2014    source источник
comment
Установите почтовый штемпель считывателя штрих-кода на Cr. Обработать событие KeyPress. Затем, если e.KeyChar = ChrW(13) установить e.Handled = True.   -  person Bjørn-Roger Kringsjå    schedule 03.10.2014


Ответы (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