到达文本框中的最后一个字符后,将光标移动到第一个字符

时间:2015-07-09 03:11:29

标签: vb.net

i有一个最大字符长度为3位的文本框,我希望用户能够以完成键入3位数后光标移回第一个字符的方式输入数字。 例如: 000 - 默认值 100 - 第一位输入 120 - 第二位输入 123 - 第三位输入 ---然后,当用户输入一个新的数字4时,字符串就是 423

任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:0)

确保文本框的MaxLength属性设置为3.声明全局变量'index'。并将此代码添加到文本框的KeyPress事件中。

要解释我的算法:你必须确保按下的键是数字或字母。要跟踪索引,每次按数字/字母键时都将其递增1。如果您的索引超过2,则表示您必须重置为0。

If Char.IsLetterOrDigit(e.KeyChar) Then
        Dim str As String = TextBox1.Text
        Dim count As Integer = str.Length

        If count = 3 Then
            Select Case index
                Case 0
                    Dim substr As String = str.Substring(1)
                    Dim newstr As String = e.KeyChar & substr
                    TextBox1.Text = newstr
                    index = index + 1
                Case 1
                    Dim substr As String = str.Substring(0, 1)
                    Dim substr2 As String = str.Substring(2, 1)
                    Dim newstr As String = substr & e.KeyChar & substr2
                    TextBox1.Text = newstr
                    index = index + 1
                Case 2
                    Dim substr As String = str.Substring(0, 2)
                    Dim newstr As String = substr & e.KeyChar
                    TextBox1.Text = newstr
                    index = index + 1
                Case Else
                    index = 0
                    Dim substr As String = str.Substring(1)
                    Dim newstr As String = e.KeyChar & substr
                    TextBox1.Text = newstr
                    index = index + 1
            End Select

        Else
            index = 0
        End If
    End If