没做过扫描枪的问题,做过点刷卡的问题,代码写出来看看有没帮助,是判断刷卡的时候回车键
private void 刷卡_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue.ToString() != "13")
            {
                if (key.Length < 10)
                {
                    key += Convert.ToChar(e.KeyValue).ToString();
                }
            }
            else
            {
                CardInId = key;
                SFsk = true;
                this.Close();
            }
        }

解决方案 »

  1.   

    如果值错了我可以解析一下,但是每次刷两次条码才执行一次接收事件,这是什么原因呢?
    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                string barID;
                barID = serialPort1.ReadExisting();
                SetTextBox(barID);        }
      

  2.   

    可以在不同的事件里试下,看看textchange里面行不行
      

  3.   

    用这个看成不
    serialPort1.ReadLine(); 
      

  4.   

    你应该用的是串口枪吧 USB的基本没有这现象的
     这种情况我也遇到过,你可以看看串口的阀值(ReceivedBytesThreshold)是多少。我是设置成1的。
    还有就是在DataReceived事件中,可以稍微加点延时,比如100毫秒。主要问题可能还是阀值