键盘口的和USB口的一样,都是模拟键盘击建来传输数据的。这就必须焦点在文本框中。
你可以在处理完一笔数据之后把焦点移到数据接受的文本框上。

解决方案 »

  1.   

    化解这个问题很简单了,几个方案:
    1、扫描枪出来的数据有规律,就是说你一看就知道是扫描枪过来,而不是按键盘按出来的
       举例:扫描出来的数据都是某几个数字或字母打头,数据长度是否定长等等,自己去发现规律
       处理方法,在窗口键盘按键优先响应的前提下,在键盘的Key_事件中用你串口的那个方法
    2、扫描枪出来的数据无规律
       在你窗口中任何有输入要求的控件的事件中写代码,把相应事件处理完后,把焦点设置回条码框,例如修改数量后,在任何无键盘输入的控件中写代码,焦点设置回条码框,例如按钮点击过后。总之,就一宗旨,时刻保持你的条码框有焦点,这点不难做到。
      

  2.   

    化解这个问题很简单了,几个方案: 
    1、扫描枪出来的数据有规律,就是说你一看就知道是扫描枪过来,而不是按键盘按出来的 
      举例:扫描出来的数据都是某几个数字或字母打头,数据长度是否定长等等,自己去发现规律 
      处理方法,在窗口键盘按键优先响应的前提下,在键盘的Key_事件中用你串口的那个方法 
    -------------
    首先说明条码是无规律的。(实际应用中都不会有规律,除非全部条码都自己打重贴一遍)
    就算是有规律,程序处理起来也很困难:人可以“一看就知道是扫描枪过来”,但对于窗口按键的事件(就是你说的优先响应的“窗口键盘按键”)来说代码来说,扫来的N个字符组成的条码会触发N次事件,这个困难你可以想到2、扫描枪出来的数据无规律 
      在你窗口中任何有输入要求的控件的事件中写代码,把相应事件处理完后,把焦点设置回条码框,例如修改数量后,在任何无键盘输入的控件中写代码,焦点设置回条码框,例如按钮点击过后。总之,就一宗旨,时刻保持你的条码框有焦点,这点不难做到。
    -------------
    保持条码框有焦点容易,但操作未必舒服,比如界面上有:
    条码框
    数量框
    打折下拉菜单
    如果改完数量后就回到条码框内,那如果还需要选择“打折”呢?
      

  3.   

    不是不是,我不是在和你争论,我的确是有前面说的那些不好解决的问题,所以才向你求解的在规律的情况下,你说的“在窗口键盘按键优先响应的前提下,在键盘的Key_事件中用你串口的那个方法”
    这里“窗口键盘按键”指的是窗口首先截获key事件是吗?如果条码,就截获,如果不是就继续传递给焦点所在的控件,是不是这个意思?