回 帖 发 新 帖 刷新版面

主题:又有新问题...

我想对文本框设置只能输入数字,就写了下面这段代码:
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
  KeyAscii = 0
  End If
End Sub
可完了发现如果写错了连退格键都不能用了,小数点什么的都不能用,请问如果我只想限制不能输入字母而键盘其他的键还可以用的话应该怎么写这段代码?[em10]

回复列表 (共13个回复)

11 楼

吐血,复制到你的工程里面,直接用就是了。与你的控件名称无关

12 楼

我记得似乎有一个函数,好像叫做is什么的可以判断一个字符是不是字母。

13 楼

9楼的答案都已经没得说了

Option Explicit

Private Const GWL_STYLE = (-16)
Private Const ES_NUMBER = &H2000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
    Dim ls&
    ls = GetWindowLong(Text1.hwnd, GWL_STYLE)
    Call SetWindowLong(Text1.hwnd, GWL_STYLE, ls Or ES_NUMBER)
End Sub

'看得懂了吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册