【发布时间】:2014-09-06 14:37:46
【问题描述】:
我有一个问题,问题是我必须允许用户在文本框中输入数字值,直到小数点后一位,
当所有文本被选中并且我尝试通过输入任何数字键来编辑文本时,它不会让它改变。
这是带有值的文本框。
背后的代码,Keypress
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Regex.IsMatch(TextBox1.Text, "\.\d") Then
e.Handled = True
End If
End Sub
请任何人提供帮助或建议更好的方法。
我已添加此代码,但我无法限制用户输入的小数点不能超过一位。
If Not ((Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) Or Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 127) Then
e.KeyChar = ""
e.Handled = False
End If
【问题讨论】:
-
你只测试 vir 数字吗?
-
目前我不只处理数字键,但为了测试我只输入数值。
-
在您的代码中,您还在评估文本框中已经存在的内容,而不是从键盘“传入”的内容...不要使用 textbox1.text,使用 e 参数。
-
为什么要重新发明轮子?使用NumericUpDown。
-
因为已经有一个TextBox来接受用户输入,所以我不能使用UpDown..control
标签: regex vb.net textbox keypress numeric