如何在文本框中添加条码扫描器的值

How to add the value of barcode scanner in textbox

我的 WindowsForm 中有多个文本框。每当我用 Barcode Scanner 扫描时,我应该先点击文本框,然后再扫描。但是,我希望每次扫描时都将条形码扫描仪的值放在特定的文本框上。是否有特定的代码或选项?

所以扫描仪工作正常,它会为您提供所选文本框的值。通过单击文本框控件,您将焦点放在该控件上。所以在使用 textBox1.Focus(); 方法加载表单时以编程方式进行;让 Form1 成为您的表单,textBox1 成为相应的文本框,代码如下所示:

public partial class Form1 : Form
{
    private void Form1_Load(object sender, System.EventArgs e)
    {
        textBox1.Focus();
    }
}

在我看来,条码扫描与键盘输入相同,只是来自条码扫描仪。所以如果你想让它只放在一个文本框中,你有多种选择

->如果你的条形码有模式写入方法来检测该模式并检查所有文本框的文本更改事件如果那是条形码如果是这样填写你需要的文本框

public static void CheckForbarcode(TextBox origin)
{
string data=origin.Text;
// asssuming your barcode is 12 digit long

    if(data.Length==12)
    {
     //Regex Pattern goes here
     origin.Text="";
     Barcode.text=data;
    }

}

完成任何操作后,第二次将焦点设置到该文本框

首先,无论何时扫描,任何条码扫描仪都会读取该值并将该值粘贴到活动文本框中,因此如果您的要求是仅扫描特定文本框中的条码,那么您可以在表单加载中设置该条码的焦点事件如下。

        private void DataLoging_Load(object sender, EventArgs e)
    {
        try
        {
         txtBarcode.Focus();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

条码扫描仪

条码扫描器是一个键盘(只是看起来不像键盘)。


焦点文本框

文本框可以使用

聚焦
tbxBarcode.Focus();

自动聚焦文本框

如果文本框未获得焦点并且您扫描了某些内容,则不会写入。

使用表单的事件 KeyDown 检查是否正在扫描某些内容但未写入 tbxBarcode


多个条形码

您可以使用 tbxBarcode.TextChanged 事件了解条形码是否已完全扫描并以编程方式按 Tab

如果条形码扫描后按回车就更好了,因为你可以在textBox1.KeyDown中使用它并得到e.KeyValue == Keys.Enter到运行 btnNextBarcode.PerformClick()