c# 2.0 - CK30:使用BarcodeReader()后,我的键盘停止工作



我正在c#紧凑框架2.0 (windows mobile 6.1)中开发带有2D阅读器的Intermec手持设备CK30。

每次我使用条形码我的键盘停止工作。知道为什么吗?

下面是代码。第一部分是配置条形码读取器的类。第二部分是使用条形码读取器填充文本框的表单。

使用条形码阅读器读取内容后,键盘停止工作…

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Intermec.DataCollection;
namespace BarCodeReaderTest
{
    class LeitorCodigoDeBarras
    {
        public BarcodeReader LerCodigoDeBarras()
        {
            try
            {
                BarcodeReader meuLeitor = new BarcodeReader("default", 4096);
                meuLeitor.ScannerEnable = true;
                meuLeitor.ThreadedRead(true);
                return meuLeitor;
            }
            catch (BarcodeReaderException bx)
            {
                MessageBox.Show("Não foi possível inicializar o leitor de código de     barras. Contate seu supervisor. n" + bx.Message);
                return null;
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Intermec.DataCollection;
namespace BarCodeReaderTest
{
    public partial class Form1 : Form
    {

        public BarcodeReader leitor;
        public Form1()
        {
            InitializeComponent();
            LeitorCodigoDeBarras classeLeitor = new LeitorCodigoDeBarras();
            leitor = classeLeitor.LerCodigoDeBarras();
            leitor.BarcodeRead += new     BarcodeReadEventHandler(this.eventoLeitorCodigoDeBarras);
        }

        void eventoLeitorCodigoDeBarras(object sender, BarcodeReadEventArgs e)
        {
            tbCodLido.Text = e.strDataBuffer;
        }
    }        
}

好了,我现在意识到您是在一个单独的类中使用BarcodeReader。

请尝试以下标准示例(表单中一个列表框和一个按钮):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Intermec.DataCollection;
namespace BarcodeReader
{
    public partial class Form1 : Form
    {
        private Intermec.DataCollection.BarcodeReader bcr;
        public Form1()
        {
            InitializeComponent();
            bcr = new Intermec.DataCollection.BarcodeReader();
            bcr.BarcodeRead += new BarcodeReadEventHandler(bcr_BarcodeRead);
            bcr.ThreadedRead(true);
        }
        void bcr_BarcodeRead(object sender, BarcodeReadEventArgs bre)
        {
            this.listBox1.Items.Add(bre.strDataBuffer);
        }
    }
    private void btnExit_Click(object sender, EventArgs e)
    {
        if (bcr !=null)
        {
            bcr.Dispose();
        }
        Application.Exit();
    }
}

如果它可以工作(另请参见Intermec Datacollection资源工具包附带的示例),我们可以检查为什么您的构造不起作用。我假设您已经安装了最新的DataCollection Resource Kit。

相关内容

  • 没有找到相关文章

最新更新