达到最大长度后自动切换文本框

时间:2017-08-13 03:27:04

标签: vb.net winforms

我想知道是否无论如何都要模拟输入PaysSafeCard引脚时会发生什么。 PaySafeCard引脚有4个文本框,每个长4个数字。填充后每一个都会自动标记到下一个。我想做的就是在vb.net中这样做,所以我不必每次都手动按Tab键。我给了它一些想法,但我找不到检查文本框是否已达到其maxLength的命令,因此它Tabs到下一个。 希望我让自己理解:| ,谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

有点宽泛,但我有点无聊。

是的,您可以在每次更改时检查TextBox.Text属性的长度。使用TextChanged事件。如果长度> = 4,则您想要移动到下一个TextBox。

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个TextBox,编号为1到4.它有点硬编码,但只适用于4个TextBox。

这也增加了一种不错的感觉,所以如果你输入一个已有文字的TextBox,它就会被选中。

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

希望这有帮助