2017-08-13 54 views
1

我想知道是否有反正当模拟PaysSafeCard引脚时发生的情况。 PaySafeCard引脚有4个文本框,每个文本框长4个数字。它们中的每一个填充时都会自动切换到下一个。我想要做的就是在vb.net中这样做,所以我不必每次都手动按下Tab键。我给了它一些想法,但我找不到检查文本框是否已达到其最大长度的命令,以便它选中下一个。 希望我让自己明白:| , 谢谢你的时间。在达到最大长度后自动切换文本框

回答

1

种类繁多,但我很无聊。

是的,每次更改时都可以检查TextBox.Text属性的长度。使用TextChanged事件。如果长度> = 4,则要移至下一个文本框。

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged 
    If TextBox1.Text.Length >= 4 Then TextBox2.Focus() 
End Sub 

Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged 
    If TextBox2.Text.Length >= 4 Then TextBox3.Focus() 
End Sub 

Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged 
    If TextBox3.Text.Length >= 4 Then TextBox4.Focus() 
End Sub 

在我的例子中有4个文本框,编号为1到4.它有点硬编码,但它只适用于4个文本框。

这也增加了一种不错的感觉,所以如果你输入一个已经有文本的文本框,它将被选中。

Private Sub TextBox_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox3.Enter, TextBox4.Enter 
    DirectCast(sender, TextBox).SelectAll() 
End Sub 

希望这有助于

+0

'在我的例子有4个文本框,编号从1到4.',我看到的只有三...;) – Codexer

+0

OP能够合适地处理TextBox4。 '自动标签到下一个'对于4号码是未定义的 – djv

+0

非常感谢! – n0degg