如何禁止除数字以外的所有数据?
这不起作用KeyDown():
If e.KeyData < Keys.D0 Or e.KeyData > Keys.D9 Then
e.Handled = True
End If
Run Code Online (Sandbox Code Playgroud)
有很多方法可以做到这一点.我已经快速刺了一下,然后就可以了.我已经将KeyPress子用于文本框,并将每个按键传递给IsNumber函数.
注意:我已经允许使用退格键,以防您输入数字并想要删除.
拿出If e.KeyChar <> ChrW(Keys.Back)然后/结束如果你不需要退格部分.
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar <> ChrW(Keys.Back) Then
If Char.IsNumber(e.KeyChar) Then
Else
e.Handled = True
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
你可以查看Char.IsDigit(e.KeyChar),但在这种情况下最好的办法是创建一个TextBox的子类并覆盖IsInputChar().这样你就可以使用可重复使用的TextBox控件,你可以放在任何地方,这样你就不必重新实现逻辑了.
(我的VB有点生锈......)
Public Class NumericTextBox : Inherits TextBox
Protected Overrides Function IsInputChar(Byval charCode As Char) As Boolean
If (Char.IsControl(charCode) Or Char.IsDigit(charCode)) Then
Return MyBase.IsInputChar(charCode)
Else
Return False
End If
End Function
End Class
Run Code Online (Sandbox Code Playgroud)