怎样让TextBox只能输入数字?解决方案
怎样让TextBox只能输入数字?
RT
谢谢!
------解决方案--------------------
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii > = vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyDelete Or KeyAscii = vbKeyBack) Then
KeyAscii = 0
End If
End Sub
------解决方案--------------------
API版,嘿嘿~~
Option Explicit
Private Declare Function SetWindowLong Lib "user32.dll " Alias "SetWindowLongA " ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll " Alias "GetWindowLongA " ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Const GWL_STYLE As Long = (-16)
Private Const ES_NUMBER As Long = &H2000&
Private Sub Form_Load()
Dim lngHwnd As Long
Dim lngReturn As Long
'使文本框只能输入数字(0~9)
lngHwnd = GetWindowLong(Text1.hwnd, GWL_STYLE)
lngReturn = SetWindowLong(Text1.hwnd, GWL_STYLE, lngHwnd Or ES_NUMBER)
End Sub
------解决方案--------------------
'ONLY INPUT NUMBER
Public Sub NUMInput(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If Not (KeyAscii > = 48 And KeyAscii <= 57) Then 'ONly input number
KeyAscii = 0
Exit Sub
End If
End Sub
------解决方案--------------------
用IsNumeric()
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
aa = Text1.Text
If Not IsNumeric(Text1.Text) Then
MsgBox "只能输入数字 "
Text1.Text = " "
Text1.Refresh
Else
Text1.Text = aa
End If
End Sub
RT
谢谢!
------解决方案--------------------
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii > = vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyDelete Or KeyAscii = vbKeyBack) Then
KeyAscii = 0
End If
End Sub
------解决方案--------------------
API版,嘿嘿~~
Option Explicit
Private Declare Function SetWindowLong Lib "user32.dll " Alias "SetWindowLongA " ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll " Alias "GetWindowLongA " ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Const GWL_STYLE As Long = (-16)
Private Const ES_NUMBER As Long = &H2000&
Private Sub Form_Load()
Dim lngHwnd As Long
Dim lngReturn As Long
'使文本框只能输入数字(0~9)
lngHwnd = GetWindowLong(Text1.hwnd, GWL_STYLE)
lngReturn = SetWindowLong(Text1.hwnd, GWL_STYLE, lngHwnd Or ES_NUMBER)
End Sub
------解决方案--------------------
'ONLY INPUT NUMBER
Public Sub NUMInput(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If Not (KeyAscii > = 48 And KeyAscii <= 57) Then 'ONly input number
KeyAscii = 0
Exit Sub
End If
End Sub
------解决方案--------------------
用IsNumeric()
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
aa = Text1.Text
If Not IsNumeric(Text1.Text) Then
MsgBox "只能输入数字 "
Text1.Text = " "
Text1.Refresh
Else
Text1.Text = aa
End If
End Sub