如何在C#应用中阅读背景中的条码文字?我用谷歌搜索但没有用。 stackoverflow上的其他资源并不接近我所需要的。我想在后台阅读条形码。我想知道数据是来自条形码还是键盘。如果数据来自条形码,则即使文本框突出显示,也不得在文本框中显示。我有类似的stackoverflow代码,但如果窗口中有文本框,则文本框将包含条形码数据;我不想要的。 链接:get barcode reader value form background monitoring
DateTime _lastKeystroke = new DateTime(0);
List<char> _barcode = new List<char>(10);
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());
MessageBox.Show(msg);
_barcode.Clear();
}
}
答案 0 :(得分:2)
大多数条形码扫描仪只是作为键盘输入,快速/简单的解决方法是将文本框置于“视线外”。一个例子是这样的:
// Pseudo code (could be Web, Windows etc)
public void Form1_Load()
{
txtBarcodeScanner.Top = -10000;
txtBarcodeScanner.Left = -10000;
txtBarcodeScanner.Width = 10;
txtBarcodeScanner.Height = 10;
txtBarcodeScanner.Focus();
}
这样输入就可以被txtBarcodeScanner
捕获,但是不可见,并且条形码不会被捕获但会触发KeyDown
等。
答案 1 :(得分:0)
键盘等条形码设备。
1输入条形码时,按f12
2插入条形码后按下了输入
private void textbox_Keydown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.F12){
Textbox.Focus();
}
if(e.KeyCode == Keys.Enter){
/// after enter barcode
/// save
}
}