我的WindowsForm中有多个文本框。每当我使用条形码扫描仪进行扫描时,我应首先单击文本框,然后再扫描。但是,我希望每次扫描时都将条形码扫描仪的值放在特定的文本框中。是否有特定的代码或选项?
答案 0 :(得分:1)
因此扫描仪正常工作,它为您提供所选文本框的值。通过单击文本框控件,您可以将焦点放在该控件上。所以在使用textBox1.Focus();
方法加载表单时以编程方式执行此操作;让Form1
成为您的表单,textBox1
为相应的文本框,代码如下:
public partial class Form1 : Form
{
private void Form1_Load(object sender, System.EventArgs e)
{
textBox1.Focus();
}
}
答案 1 :(得分:1)
首先,无论何时扫描任何条形码扫描器都会读取该值并将该值粘贴到活动文本框中,因此如果您的要求是仅在特定的一个文本框中扫描条形码,那么您可以在表单加载事件中设置该条形码的焦点,如下方。
private void DataLoging_Load(object sender, EventArgs e)
{
try
{
txtBarcode.Focus();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 2 :(得分:0)
在我看来,条形码扫描与键盘输入相同,它只是来自条形码扫描仪。因此,如果您希望它只放在一个文本框中,您有多个选项
- >如果您的条形码具有模式写入方法来检测该模式并检入所有文本框的textchange事件,如果这样的条形码(如果有的话)填写所需的textBox
<table>
<thead>
<tr>
<th>Account Code</th>
<th>Name</th>
<th>Debit</th>
<th>Credit</th>
</tr>
</thead>
<tbody>
<tr>
<td data-bind="text:AcctId"></td>
<td data-bind="text:AcctDescription"></td>
<td>
<span data-bind="if: Debit == 1">
<!-- ko text: Amount -->
<!-- /ko -->
</span>
</td>
<td>
<span data-bind="if: Credit == 1">
<!-- ko text: Amount -->
<!-- /ko -->
</span>
</td>
</tr>
</tbody>
</table>
完成任何操作后,第二次设置焦点到该文本框
答案 3 :(得分:-1)
条形码扫描仪是一个键盘(只是看起来不像)。
可以使用
聚焦TextBoxtbxBarcode.Focus();
如果textBox没有聚焦并且您扫描某些内容,那么它就不会被写入。
使用表单的事件KeyDown
检查是否正在扫描某些内容,但未在tbxBarcode
中进行书写。
您可以使用tbxBarcode.TextChanged
事件来了解条形码是否已完全扫描并以编程方式按 Tab 。
如果条形码在扫描后按 Enter 更好,因为您可以在textBox1.KeyDown
中使用该条形码并让e.KeyValue == Keys.Enter
运行btnNextBarcode.PerformClick()