注册 登录
编程论坛 VB6论坛

怎么限制输入?

asad 发布于 2023-03-27 14:12, 1315 次点击
文本框只能输入数字和小数,怎么写,谢谢
8 回复
#2
apull2023-03-27 15:13
程序代码:

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
#3
wds12023-03-27 15:41
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
#4
asad2023-03-28 01:30
谢谢!!
#5
asad2023-03-28 11:28
回复 3楼 wds1
有两个文本框,文本框1只能输入数字和小数,当文本框1输入数字或者小数,文本框2自动计算出结果,文本框2=文本框1 *2 ,能不能结合上面代码

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

#6
wds12023-03-28 14:20
'键盘按下允许数字,小数点,退格
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
#7
asad2023-03-28 16:29
回复 6楼 wds1
谢谢!
#8
yuma2023-04-03 19:32
楼上的朋友们,你们的你代码都有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编辑过]

#9
asad2023-04-03 21:38
回复 8楼 yuma
谢谢!!
1