C#条形码扫描仪和带有更改事件的文本框

时间:2015-01-07 18:10:57

标签: c# textbox barcode

所以我有条形码扫描仪和带有更改文本事件的文本框。我试图做的是,当用户扫描代码时,它进入文本框,之后我有代码执行一些SQL(它工作正常)。问题是,由于更改了文本事件,texbox只接受代码的第一个字符串而不是整个字符串。

我想拥有它,因为用户不需要按任何其他按钮来插入产品。 我试图捕获条形码,将其保存到字符串中,但这也不起作用。

到底有没有?

4 个答案:

答案 0 :(得分:2)

您可以将条形码阅读器配置为"添加回车键"或"添加标签键"扫描条形码后。 然后你可以使用它如下。

private void txtBarcode_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
   if (e.KeyCode == Keys.Enter)
   {
       //Do Something
   }
}

答案 1 :(得分:1)

大多数条形码扫描仪都能够将键序列添加到扫描数据的末尾。许多人只是简单地使用CRLF。你可以在文本框中的keypress事件上监听这个,然后使用它来运行你的SQL代码。

摩托罗拉扫描仪通常有一个快速入门指南,可以使用条形码进行扫描以进行设置。

答案 2 :(得分:1)

如果代码的长度始终相同,则可以检查文本更改事件的长度并推迟数据库操作,直到代码长度正确。

如果代码长度可变,那么您可能必须更聪明。

  • 也许您可以使用焦点更改事件而不是文本更改事件,以便在文本框失去焦点之前不会运行数据库操作。
  • 对条形码扫描器进行编程,将某个字符附加到字符串的末尾,并推迟数据库操作,直到收到该字符为止。
  • 使用计时器推迟数据库操作。例如,您可能知道整个代码将在500毫秒内输入。等待500毫秒,然后抛弃文本更改事件。

答案 3 :(得分:1)

我几年前也这样做过。 首先检查读者是否在实际条形码字符串后发送最终回车符。 通常与阅读器一起,您可以使用某些条形码来配置设备。

如果您对设备不满意,请使事件实现异步,并在运行SQL之前等待200ms。 如果等待时间引发了另一个事件,则更改用于搜索的字符串,或者只是中止旧事件并创建一个新事件。

这应该有效,因为条形码是一个键盘,可以高速(通常小于200毫秒)推动字符序列通过I / O.

我希望这会有所帮助。