C#条码扫描器和具有更改事件的文本框

ori*_*in2 3 c# textbox barcode

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

我想拥有它,因为那样的话,用户无需按任何其他按钮即可插入产品。我试图捕获条形码,将其保存为字符串,但这也行不通。

有没有办法解决 ?

小智 5

您可以在扫描条形码后将条形码阅读器配置为“添加回车键”或“添加选项卡键”。然后您可以按以下方式使用它。

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


mit*_*emo 3

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

如果代码的长度是可变的,那么你可能需要更加聪明。

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