| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2216 人关注过本帖
标题:输入的数字只能是0-9
只看楼主 加入收藏
jyp19851119
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2008-2-26
结帖率:100%
收藏
 问题点数:0 回复次数:11 
输入的数字只能是0-9
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
  Dim myval As Long
  'ASCII码48~57表示按键盘的0~9键,其中13为“回车”;8为“退格”
line1:
  If Index = 0 Or Index = 3 Then
     If KeyAscii > 57 And KeyAscii <> 13 And KeyAscii <> 8 Then     输入数字只能是0-9中的任意数字啊,这句什么意思啊
       'KeyAscii = 0用于取消用户的这一次输入
       KeyAscii = 0
       myval = MsgBox("输入字符必须在0-9之间!", 2 + vbExclamation, "提示")
       If myval = 3 Then End
       If myval = 4 Then GoTo line1
       If myval = 5 Then GoTo line2
line2:
       text1(1).SetFocus
     End If
  End If
End Sub
为什么不要KeyAscii>48
搜索更多相关主题的帖子: 输入 数字 
2008-12-13 14:37
逐日
Rank: 2
等 级:新手上路
威 望:5
帖 子:117
专家分:2
注 册:2008-9-22
收藏
得分:0 
应该是"为什么不要KeyAscii<48 "
因为then后面是取消用户的这一次输入
应该要KeyAscii<48 上面的例子可在text1里输入","
2008-12-13 14:54
jyp19851119
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2008-2-26
收藏
得分:0 
  是 "为什么不要KeyAscii<48 "
我还是不太明白
2008-12-13 15:11
逐日
Rank: 2
等 级:新手上路
威 望:5
帖 子:117
专家分:2
注 册:2008-9-22
收藏
得分:0 
因为then后面是取消用户的这一次输入
48-57之间是数字不用取消,是有用的,<48的不是数字没用要取消.
2008-12-13 15:39
jyp19851119
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2008-2-26
收藏
得分:0 
If KeyAscii > 57 And KeyAscii <> 13 And KeyAscii <> 8 Then
.................
end if
是不是要把    KeyAscii <48 加上去了啊
2008-12-13 15:51
逐日
Rank: 2
等 级:新手上路
威 望:5
帖 子:117
专家分:2
注 册:2008-9-22
收藏
得分:0 
If (KeyAscii > 57 or KeyAscii <48) And KeyAscii <> 13 And KeyAscii <> 8 Then

If KeyAscii > 57 or (KeyAscii <48 And KeyAscii <> 13 And KeyAscii <> 8) Then

[[it] 本帖最后由 逐日 于 2008-12-13 16:25 编辑 [/it]]
2008-12-13 16:23
jyp19851119
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2008-2-26
收藏
得分:0 
2008-12-13 16:26
pariszh
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-12-13 18:07
xandy
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-12-6
收藏
得分:0 
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Dim MyVal As Long
'ASCII码48~57表示按键盘的0~9键,其中13为"回车";8为"退格"
If Index = 0 Or Index = 3 Then
Do Until KeyAscii > 47 And KeyAscii < 58 And KeyAscii <> 13 And KeyAscii <> 8
        KeyAscii = 0 'KeyAscii = 0用于取消用户的这一次输入
        MyVal = MsgBox("输入字符必须在0-9之间!", 2 + vbExclamation, "提示")
        Select Case MyVal
            Case 3
                End
            Case 4
                Exit Do
            Case 5
                Text1(1).SetFocus
                Exit Do
        End Select
Loop
End If
End Sub

你看一下ASCII码就知道为什么了.

[[it] 本帖最后由 xandy 于 2008-12-16 10:47 编辑 [/it]]

希望和大家做个朋友...
2008-12-16 01:11
jyp19851119
Rank: 1
等 级:新手上路
帖 子:157
专家分:0
注 册:2008-2-26
收藏
得分:0 
学习
2008-12-16 09:11
快速回复:输入的数字只能是0-9
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017382 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved