【发布时间】:2009-03-05 12:02:33
【问题描述】:
我正在使用以下代码来验证用户输入的文本。它工作得很好。但是我想添加退格功能,以便用户删除错误输入的数字。
我尝试了几件事,但它们有效,但在最后一个数字之前(小数点后),即在数字完全输入后它不允许删除。 数字输入格式为:12313213.45
我该怎么办?
Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
'validation '
Dim KeyAscii As Short = Asc(e.KeyChar)
If Not ((KeyAscii >= System.Windows.Forms.Keys.D0 And KeyAscii <= System.Windows.Forms.Keys.D9) Or (KeyAscii = System.Windows.Forms.Keys.Back) Or Chr(KeyAscii) = "." Or (Chr(KeyAscii) Like "[ ]")) Then
KeyAscii = 0
TextBox5.Focus()
End If
If KeyAscii = 0 Then
e.Handled = True
End If
If TextBox5.Text.IndexOf(".") >= 0 And e.KeyChar = "." Then
e.Handled = True
End If
If TextBox5.Text.IndexOf(".") > 0 Then
If TextBox5.SelectionStart > TextBox5.Text.IndexOf(".") Then
If TextBox5.Text.Length - TextBox5.Text.IndexOf(".") = 3 Then
e.Handled = True
End If
End If
End If
End Sub
【问题讨论】:
-
我没有足够的代表来编辑帖子,但是请有人将评论标记改回原来正确的 VB 评论。 (//验证应该是'验证)
-
pipTheGeek:我已经对帖子进行了教育,但我不得不在末尾添加第二个撇号,否则荧光笔会将整个 sn-p 视为单个字符串