如何在条形码读取器中使用textChanged事件



我正在使用条形码读取器从产品中获取条形码。我在文本字段中得到代码。我把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变量应该包含扫描的条形码值。

最新更新