【发布时间】:2017-04-07 14:13:41
【问题描述】:
我创建了一个库存定位器/移动器程序。场景顺序如下:
- 首先,用户将二维码扫描到 textBox1 中,然后将位置扫描到 textBox2 中。
- 接下来,将执行更新语句,从而“移动”库存的位置。
如何在 textBox1 填充二维码后自动将光标移动到 textBox2 中?
请注意二维码的长度不同。这使我无法使用 textBox 最大长度。我目前尝试了以下方法:
private void textBox1_TextChanged(object sender, EventArgs e)
{
//part number textbox
var partNumber = textBox1.Text;
partNumber = partNumber.TrimEnd('\r', '\n');
if (textBox1.Text!=null)
{
textBox1.Select();
}
else
{
textBox2.Select();
}
}
使用上述代码,将二维码的第一个字符输入到 textBox1 中,其余字符输入到 textBox2 中。愿望是让所有的二维码字符都在 textBox1 中,然后让光标改变焦点到 textBox2。
【问题讨论】:
-
大多数扫描仪都可以选择在读取值的末尾附加一个回车符|+换行符来处理这个要求,看看你是否这样做。
-
@Gudgip 这个问题与这个问题没有任何关系。
-
仅供参考,
textBox1.Text在TextChanged事件中永远不会是null。如果是这样,您对.TrimEnd的调用将引发空引用异常。 -
您可以在 QR 的末尾添加一个字符串,在更改的事件中您可以检查字符串是否出现在 QR 中
-
看起来您正在丢弃需要检测第一个字段已完全输入的字符。使用 KeyDown 事件来检测它,使用 e.Handled = e.SuppressKeyPress = true 来防止它被添加到文本框。