我正在处理POS应用程序,它是一个windows应用程序。
我们有从5到16的条形码长度。这里我使用textbox更改事件获取扫描的条形码,所以扫描条形码后,我需要检查基于条形码的服务器上的详细信息。这里的问题是textbox事件,当我扫描项目时,每个数字都会调用该事件。最多5个字符是可以的,但之后我需要逐个检查6到16个字符。因此,条形码扫描性能降低。
发布于 2017-05-17 21:31:03
但是,假设您在HID模式下使用条形码扫描器(模拟键盘,而不是直接连接到串行端口),并且假设您使用的是TextChanged事件,那么,是的,每次向TextBox追加一个字符时,都会触发该事件。
因此,您需要做的是在检查条形码之前引入一个计时器来引入延迟(例如200ms),如果事件在计时器到期之前再次触发,则重置计时器,否则在计时器触发时检查条形码。
private System.Timers.Timer barcodeTimer = new System.Timers.Timer(200);
private void barcodeTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
barcodeTimer.Stop();
barcodeTimer.Start();
}
private void barcodeTimer_Elapsed(object sender, Timers.ElapsedEventArgs e)
{
barcodeTimer.Stop();
processBarcode();
}(从VB.Net转换而来,因此对错误深表歉意)
https://stackoverflow.com/questions/44026112
复制相似问题