如题。

解决方案 »

  1.   

    Private Sub txet1Class_KeyPress(KeyAscii As Integer)
       if keyascii < 48 or keyascii > 57 then keyascii = 0
    End Sub
      

  2.   

    Private Sub text1_KeyPress(KeyAscii As Integer)
       If keyascii < 48 or keyascii > 57 or keyascii <> 8 then
           keyascii = 0
       Endif
    End
      

  3.   

    Public Function sffunLimitNumber(ByVal IntVal As Integer) As Integer
    '-------------------1-------------------
    '目    的:只允许在文本框内输入数字、退格、删除及回车键
    '输    入:ByVal IntVal As Integer,任意的键值
    '被传递值:无
    '返 回 值:过滤后的键值
    '输    出:无
    '注    解:
    '用    法:在文本框的KeyPress事件中输入KeyAscii = sffunLimitNumber(KeyAscii)即可
    '修 订 版:
    '-------------------1-------------------
    If (IntVal <> vbKeyDelete) _
    And (IntVal <> vbKeyBack) _
    And (IntVal <> 13) _
    And (IntVal < 48 Or IntVal > 57) Then
        IntVal = 0
    End If
    sffunLimitNumber = IntValEnd Function
      

  4.   


    还有一个控件可以做到:工程-》部件-》选择“microsoft masked edit control 6.0(sp3)”.
    它与文本框(TEXT BOX)功能基本相似,但多了一个MASK属性,MASK属性常用的设定如下:
           #—限定仅能输入数字0~9;
           A— 限定输入为英文字符及数字;
           ?—限定仅能输入英文字符;
           .—限定小数点位置;
           :—限定时间分隔号;
           /—限定日期分隔号
        不需编写代码,只要在设计时将格式化文本框对象(MASKED EDIT)的MASK属性设计好所需格式即可。比如 #######.##可输入12.3或123456.78但不能输入字母或其他字符但你必须考虑你输入的数字的位数,例如,如果把mask属性设为###.##,那么就只可以输入123.45,而不能输入1234.56,所以,最好把位数设得足够多。这样,你不需要写一行程序,只需要设定masked edit控件的属性就可以达到你的目的了