我的WindowsForm中有多个文本框。每当我使用条形码扫描仪进行扫描时,我应首先单击文本框,然后再扫描。但是,我想在每次扫描时将条形码扫描仪的值放在特定的文本框中。是否有特定的代码或选项?
因此扫描仪正常工作,它为您提供所选文本框的值。通过单击文本框控件,您可以将焦点放在该控件上。所以在使用textBox1.Focus();
方法加载表单时以编程方式执行;让Form1
成为你的形式,textBox1
是相应的文本框,代码如下:
public partial class Form1 : Form
{
private void Form1_Load(object sender, System.EventArgs e)
{
textBox1.Focus();
}
}
首先,每当您扫描任何条形码扫描器时,将读取该值并将该值粘贴到活动文本框中,因此如果您的要求是仅在特定的一个文本框中扫描条形码,则可以在下面的表单加载事件中设置该条形码的焦点。
private void DataLoging_Load(object sender, EventArgs e)
{
try
{
txtBarcode.Focus();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
在我看来,条形码扫描与键盘输入相同,它只是来自条形码扫描仪。因此,如果您希望它只放在一个文本框中,您有多个选项
- >如果您的条形码有模式写入方法来检测该模式并检查所有文本框的textchange事件,如果这样的条形码,如果是这样填写您需要的textBox
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;
}
}
任何操作完成后,第二组焦点到该文本框
条形码扫描仪是键盘(看起来不像一个)。
TextBox可以使用
tbxBarcode.Focus();
如果textBox没有聚焦并且您扫描某些内容,则不会写入。
使用表单的事件KeyDown
检查是否正在扫描某些内容但没有在tbxBarcode
中写入。
您可以使用tbxBarcode.TextChanged
事件来了解条形码是否已完全扫描并以编程方式按Tab键。
如果条码在扫描后按Enter键更好,因为你可以在textBox1.KeyDown
中使用它并让e.KeyValue == Keys.Enter
运行btnNextBarcode.PerformClick()