我正在使用条形码读取器从产品中获取条形码。我在文本字段中得到代码。我把textchanged事件放在那个文本框上。但问题是,当条形码将其设置为值时(例如,如果条形码是5位数字),则textchanged事件会触发五次。如何驾驭这东西???
您应该能够对条形码读取器进行编程,以输出前缀字符和后缀字符(一个在扫描值之前输出,一个在之后输出)。假设您将其设置为在扫描数据值之前输出星号(*),然后输出回车(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
变量应该包含扫描的条形码值。