i有一个最大字符长度为3位的文本框,我希望用户能够以完成键入3位数后光标移回第一个字符的方式输入数字。 例如: 000 - 默认值 100 - 第一位输入 120 - 第二位输入 123 - 第三位输入 ---然后,当用户输入一个新的数字4时,字符串就是 423
任何帮助将不胜感激。 感谢
答案 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