如何强制进入'在C#中没有用户交互的密钥?

时间:2014-10-30 15:29:54

标签: c# winforms

我在Windows窗体上有一个文本框(使用visual studio 2008 - C#),它从连接到显示器的手持式扫描仪获取数据。当用户扫描条形码时,数据在文本框中输入并且就在那里。

我想要做的是以某种方式强制进入/返回键击而无需用户按任何东西。

这甚至可能吗?

2 个答案:

答案 0 :(得分:4)

如果您可以正确配置扫描仪,则无需编程解决方案。

昂贵的扫描仪提供了一个API,允许您直接配置扫描仪和接收扫描事件。更便宜的扫描仪模拟键盘并将字符发送到具有焦点的窗口。

此类扫描仪几乎总是允许配置设置各种扫描参数,包括前缀和后缀字符。您应该能够按照制造商指定的程序将Enter指定为后缀字符。

您还可以使用“怪异”前缀字符(例如§)来通知您的扫描表单,以便最终用户不必将焦点放在文本框上。您可以设置表单的KeyPreview属性以捕获表单级别的键盘事件,并以编程方式将焦点设置为文本框,或者在检测到Enter字符之前开始捕获所有键。

可以通过设置DIP开关来配置某些扫描仪。可以通过扫描配置表中的特殊代码来配置其他代码。该程序因制造商和扫描仪的类型而异。

答案 1 :(得分:1)

在文本框更改时执行验证以确定扫描是否完成(可能会注册多个更改事件)。

完成后,您可以调用Enter键将导致调用的任何处理函数,或者如果您想要移动到另一行,则插入回车符+换行符。