我的条形码阅读器是HID类型并使用USB。
我可以在文本框关注时获取数据并执行一些业务逻辑。
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyValue == (char)Keys.Return)
{
e.Handled = true;
int barcodeLength = textBox1.TextLength;
textBox1.Select(0, barcodeLength);
queryData(textBox1.Text);
}
}
在我谷歌之后,我找到了这个article并试图实现我的应用程序。但现在的问题是,价值以双重性质回归。如果string是F1234,它将返回FF11223344,依此类推。
这里是代码
DateTime _lastKeystroke = new DateTime(0);
List<char> _barcode = new List<char>(10);
public Form1()
{
InitializeComponent();
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
// check timing (keystrokes within 100 ms)
TimeSpan elapsed = (DateTime.Now - _lastKeystroke);
if (elapsed.TotalMilliseconds > 100)
_barcode.Clear();
// record keystroke & timestamp
_barcode.Add(e.KeyChar);
_lastKeystroke = DateTime.Now;
// process barcode
if (e.KeyChar == 13 && _barcode.Count > 0)
{
string msg = new String(_barcode.ToArray());
queryData(msg);
_barcode.Clear();
}
}
需要建议来解决我的问题
答案 0 :(得分:2)
只需评论以下内容
// this.KeyPress + = new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);