如题~~~

解决方案 »

  1.   

    Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
       KeyAscii = 0
    End If
    End Sub
      

  2.   

    看这里的比较好:http://www.vb-helper.com/howto_allow_only_digits.html
      

  3.   

    用SetWindowLong为窗口附加ES_NUMBER风格,可禁止鼠标粘贴非数字进去
      

  4.   

    Private Sub Text1_Change()
    If Not IsNumeric(Trim$(Text1.Text)) Then
        Text1.Text = ""
        Text1.SetFocus
    '   MsgBox "请输入数字!", , "警告"
        Exit Sub
    End If
    End Sub
      

  5.   

    If Not IsNumeric(Trim$(Text1.Text)) Then
        MsgBox "请输入数字!", , "警告"
     End If
      

  6.   

    一般通过KeyPress事件判断键盘按键来限制即可。
      

  7.   

    Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long)'用这个函数判断指定的 Char 是否为数字类别。
    Public Function IsDigit(ByVal Char As String) As Boolean
        Dim vCharCode As Long
        RtlMoveMemory vCharCode, AscW(Char), 2
        Select Case vCharCode
            Case 48 To 57, 1632 To 1641, 1776 To 1785, 2406 To 2415, 2534 To 2543, 2662 To 2671, 2790 To 2799, 2918 To 2927, 3046 To 3055, 3174 To 3183, 3302 To 3311, 3430 To 3439, 3664 To 3673, 3792 To 3801, 3872 To 3881, 4160 To 4169, 6112 To 6121, 6160 To 6169, 6470 To 6479, 6608 To 6617, 65296 To 65305
                IsDigit = True
            Case Else
                IsDigit = False
        End Select
    End Function
      

  8.   

    只能输入"1234567890."Private Sub Text1_KeyPress(KeyAscii As Integer)
        If (Not (KeyAscii > 45 And KeyAscii < 58)) And KeyAscii <> 8 And KeyAscii <> 47 Then KeyAscii = 0
    End Sub
      

  9.   


    if (keyascii<48 or keyascii>57) and keyascii<>8 then keyascii=0
      

  10.   

    Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long)'用这个函数判断指定的 Char 是否为数字类别。
    Public Function IsDigit(ByVal Char As String) As Boolean
        Dim vCharCode As Long
        RtlMoveMemory vCharCode, AscW(Char), 2
        Select Case vCharCode
            Case 48 To 57, 1632 To 1641, 1776 To 1785, 2406 To 2415, 2534 To 2543, 2662 To 2671, 2790 To 2799, 2918 To 2927, 3046 To 3055, 3174 To 3183, 3302 To 3311, 3430 To 3439, 3664 To 3673, 3792 To 3801, 3872 To 3881, 4160 To 4169, 6112 To 6121, 6160 To 6169, 6470 To 6479, 6608 To 6617, 65296 To 65305
                IsDigit = True
            Case Else
                IsDigit = False
        End Select
    End Function不太明白,作者解释下....
      

  11.   

    Private Sub Text1_KeyPress(KeyAscii As Integer)
       On Error Resume Next
       Dim i As Integer
       Dim j As Integer
       If KeyAscii > 57 Or KeyAscii < 48 And KeyAscii <> 46 And KeyAscii <> 8 And KeyAscii <> 13 Then
          Text1.Locked = True
       ElseIf KeyAscii = 46 Then
          i = InStr(Text1.Text, ".")
          j = Len(Trim(Text1.Text))
          If j = 0 Then
           Text1.Locked = True
          ElseIf i = 0 Then
           Text1.Locked = False
          Else
           Text1.Locked = True
          End If
         Else
          Text1.Locked = False
       End If
    End Sub
    可以使用方向键及DEL、BACKSPACE键,并且只能输入一个小数点