我创建了一个库存定位器/移动器程序。场景序列如下:
在使用QR码填充textBox1后,如何自动将光标移动到textBox2?
请注意QR码的长度不一。这使我无法使用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();
}
}
使用上述代码,QR码的第一个字符输入到textBox1中,其余字符输入到textBox2中。希望在textBox1中包含所有QR码字符,然后将光标更改为textBox2。
答案 0 :(得分:1)
解;
private void textBox1_KeyPress(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox2.Select();
}
}
然后转到textBox1的属性并设置' KeyDown'到'事件'下的textBox1_KeyPress它的工作原理。
答案 1 :(得分:0)
在SE上的另一个问题中已经描述了类似的问题。
esskar 发布的以下answer可能会让您感兴趣。 由于扫描仪可能只需要瞬间将QR码扫描到TextBox中,因此您可以使用该答案中的技术在TextChanged触发时启动计时器。我将Timer的间隔设置为大约500ms,这应该足够了,一旦它触发,你就可以确定QR码是在TextBox中。
显然,这不是一个完美的解决方案,因为在某些情况下,无论出于何种原因,扫描仪可能会滞后或根本无法在该时间范围内传送QR码。
在继续之前,您需要检查常见的QR码长度并验证代码。
要明确:不需要创建新类型的TextBox。 只需在触发TextChanged时启动计时器。