如何解决用 22 个单位和 3 个小数点限制文本
如何限制文本框的输入,使其仅接受 22 个单位和 3 个小数点?
解决方法
看看这个,只有数字和逗号。
当离开另一个文本框时,它会删除超过 22 个,当超过 1 个逗号时,它会删除并将数字返回到逗号后面的 3 个数字。
这是超过 22 个和超过 1 个逗号 1234,56789,123,45699999
将文本框留给按钮或其他文本框,它将返回此 1234567891234569,999
Private Sub TextBox1_TextChanged(sender As Object,e As EventArgs) Handles TextBox1.TextChanged
Dim a_chars As String = "0123456789,",t_tekst As String,i As Integer
For i = 1 To Len(TextBox1.Text)
If InStr(a_chars,Mid(TextBox1.Text,i,1)) = 0 Then
MsgBox("Only numbers and comma")
Else
t_tekst = t_tekst & Mid(TextBox1.Text,1)
End If
Next
TextBox1.Text = t_tekst
TextBox1.SelectionStart = i
End Sub
Private Sub TextBox1_Validating(sender As Object,e As CancelEventArgs) Handles TextBox1.Validating
If TextBox1.TextLength > 22 Then
TextBox1.Text = TextBox1.Text.Substring(0,22)
MsgBox("More then 22 .")
TextBox1.Focus()
End If
Dim t_tekst As String,d_sep As Boolean,c_placed As Boolean,lgt As Integer
If TextBox1.Text = "" Then Exit Sub
d_sep = False
lgt = Len(TextBox1.Text)
t_tekst = vbNullString
For i As Integer = 1 To lgt
Select Case Mid(TextBox1.Text,1)
Case ".","
d_sep = True
Case Else
If i >= lgt - 2 Then
If d_sep And Not c_placed Then
t_tekst = t_tekst & ","
c_placed = True
End If
End If
t_tekst = t_tekst & Mid(TextBox1.Text,1)
End Select
Next
TextBox1.Text = t_tekst
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。