Използвам четец на баркодове, за да получа баркод от продукти. получавам кода в текстово поле. и поставих събитие 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