我正在制作一个基本的Windows窗体应用。其中一个表单上只有一个文本框和按钮。 除此之外,我在sql server上有一个数据库。在我的数据库中,有一个表(由ProductID,productName,NoOfStock和Price组成)。
ProductID' s都是属于现实世界产品的条形码,如手糊,糖果等。
当我通过其他控件(如组合框)的条形码获取产品详细信息时,没有任何问题。但, **问题是或者我的问题是**,当我扫描我的条形码时,我可以直接在我的文本框中获取它。拥有条形码后,我想在消息框或标签上看到产品名称(ProductName)而不点击任何按钮或输入等。
换句话说,我希望我的系统像超市一样工作..员工不需要点击显示器上的任何东西,只需扫描条形码并立即获取详细信息。*
我认为它与一个事件有关,但是哪一个?
答案 0 :(得分:1)
我的第一个猜测也是使用TextBox.TextChanged
- 事件,但是阅读你的评论不起作用,现在考虑一下,这是有道理的。
大多数扫描仪"只是"从他们所连接的计算机的角度来看像键盘一样工作(所以他们一个接一个地发送密钥......)。而且(正如icemanind所指出的)大多数条形码扫描仪都(或可以)配置为通过一些预先配置的密钥终止其输入(在大多数情况下,它是 Enter 或 Tab ,但您应该能够轻松找到该手册,或者只是查看扫描时进入的键。
所以你应该做的是订阅KeyPress
-Event (我猜keydown也可以,但是我说它不太可能会发送扫描程序终止密钥,然后按住它)
然后检查该事件是否已发送终止密钥,如果是,则检查文本框的文本内容并尝试从产品数据库中查找数据。
答案 1 :(得分:0)
您可能希望在扫描条形码时在文本框上触发TextChanged事件。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged(v=vs.110).aspx
答案 2 :(得分:0)
根据条形码扫描仪的品牌和型号,通常会有一个说明手册,其中有一个条形码页面用于表示终结符代码,如here on this SuperUser question所示。
您需要做的就是找到此页面并将条形码扫描器编程为在完成输入条形码后自动选择TAB或CR。执行此操作后,您可以使用TextChanged
事件来检测终结符(TAB或CR)代码何时通过,然后您就可以处理它了!
如果您选择TAB作为终结器,那么您可以简单地处理Leave
事件,因为它会自动从文本框中跳出,从而从文本框中留下焦点。