当前条码扫描如何输出值?

How can the current barcode scan output the value?

我使用 Datalogic 公司的 GD4430 手持式扫描仪,其中包含 OPOS 驱动程序。使用以下代码,我设法解决了扫描仪问题。当我启动程序时,扫描仪变为活动状态,您可以扫描。但是我无法在 TextBox 中显示结果。

有没有人看出错误在哪里?

Visual Studio 2010 C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestRead
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {            
        axOPOSScanner1.BeginInit();
        axOPOSScanner1.Open("USBHHScanner"); 
        axOPOSScanner1.ClaimDevice(0);            
        axOPOSScanner1.DeviceEnabled = true;
        axOPOSScanner1.DataEventEnabled = true;
        axOPOSScanner1.PowerNotify = 1; //(OPOS_PN_ENABLED);
        axOPOSScanner1.DecodeData = true;
    }               

    void axOPOSScanner1_DataEvent(object sender, AxOposScanner_CCO._IOPOSScannerEvents_DataEventEvent e)        
    {                
        textBox1.Text = axOPOSScanner1.ScanDataLabel;
        textBox2.Text = axOPOSScanner1.ScanData.ToString();

        axOPOSScanner1.DataEventEnabled = true;                       
        axOPOSScanner1.DataEventEnabled = true;
    }

  }
}

源上的 AxOPOSScanner1.BeginInit() 处理原来是在 Form1.Designer.cs 而不是在这里?
(我假设源文件名是Form1.cs)

如下(在Form1.Designer.cs):

this.axOPOSScanner1 = new AxOposScanner_CCO.AxOPOSScanner();
((System.ComponentModel.ISupportInitialize)(this.axOPOSScanner1)).BeginInit();
this.SuspendLayout();

问题的发生可能是因为您将其移至 Form1.cs 或在 Form1.Designer.cs 和 Form1.cs 上调用了 BiginInit()。

或者Form1.Designer.cs中不存在下面的处理,或者指定的函数名(axOPOSScanner1_DataEvent)有可能是错误的

this.axOPOSScanner1.DataEvent += new AxOposScanner_CCO._IOPOSScannerEvents_DataEventEventHandler(this.axOPOSScanner1_DataEvent);


另外:

你应该做的是暂存所有方法的return值,增加一个判断方法是否正常执行的过程,同样是立即读取ResultCode属性设置属性后(可能会出错)添加判断属性设置是否正常的处理

此外,虽然与 DataEvent 无关,但必须在 DeviceEnabled = true 之前完成 PowerNotify 设置。