本帖最后由 Q420731106 于 2011-09-28 19:08:30 编辑

解决方案 »

  1.   

    在 Text1_Validate 里面判断
    For I = 1 To Len(Text1.Text)
        If (Asc(Mid(Text1.Text, I, 1)) < Asc("0") Or Asc(Mid(Text1.Text, I, 1)) > Asc("9")) And Mid(Text1.Text <> "-") Then
            Cancel = True
            Exit Sub
        End If
    Next
      

  2.   

    也可判断输入字符的ASCII码,如果不对,那么就忽略掉它
      

  3.   

    原理一样。但是不建议写在KeyPress里面。因为用户可能会使用鼠标复制粘贴内容。KeyPress并不能处理这样的情况。
    Validate事件是专门为验证数据有效性而准备的。