标题:怎么限制输入?
只看楼主
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
结帖率:80%
已结贴  问题点数:20 回复次数:8 
怎么限制输入?
文本框只能输入数字和小数,怎么写,谢谢
搜索更多相关主题的帖子: 数字 文本框 限制 小数 输入 
2023-03-27 14:12
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:10 
程序代码:
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 46 Then  '输入小数点
        If InStr(1, Text1.Text, ".") > 0 Then KeyAscii = 0  '只能有1个小数点
    ElseIf KeyAscii < 48 Or KeyAscii > 57 Then  '非数字字符
        KeyAscii = 0
    End If   
    
End Sub
2023-03-27 15:13
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:10 
keyascii含义:
48-57:对应0-9
   46:小数点
    8:退格
'这个代码限定可以输入数字,小数点,接收退格。适合输入IP地址信息
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 46 And KeyAscii <> 8 Then
        KeyAscii = 0
    End If
End Sub
2023-03-27 15:41
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
谢谢!!
2023-03-28 01:30
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
回复 3楼 wds1
有两个文本框,文本框1只能输入数字和小数,当文本框1输入数字或者小数,文本框2自动计算出结果,文本框2=文本框1 *2 ,能不能结合上面代码

[此贴子已经被作者于2023-3-28 11:50编辑过]

2023-03-28 11:28
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
'键盘按下允许数字,小数点,退格
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 46 And KeyAscii <> 8 Then
     KeyAscii = 0
  End If
End Sub
'键盘抬起进行
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
  Text2.Text = Val(Text1.Text) * 2
End Sub
2023-03-28 14:20
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
回复 6楼 wds1
谢谢!
2023-03-28 16:29
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
楼上的朋友们,你们的你代码都有Bug,应该这样。

只允许输入数字、小数点、退格键。只能有一个小数点,且不允许第1位为小数点:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    ' 允许输入数字、小数点和退格键
    If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 46 Or KeyAscii = 8 Then
        ' 如果已经输入了小数点,则禁止再次输入
        If KeyAscii = 46 And (InStr(Text1.Text, ".") > 0 Or Len(Text1.Text) = 0) Then
            KeyAscii = 0
        End If
        ' 如果小数点在第1位,则禁止输入
        If KeyAscii = 46 And Len(Text1.Text) = 1 Then
            KeyAscii = 0
        End If
    Else
        ' 禁止输入
        KeyAscii = 0
    End If
End Sub

[此贴子已经被作者于2023-4-3 19:37编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-04-03 19:32
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
回复 8楼 yuma
谢谢!!
2023-04-03 21:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511692-1-1.html




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

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