如何控制文本框内只能输入中文字符,不能输入其它任何子符

解决方案 »

  1.   

    利用ASCII码判断If Asc(Left(mystr, 1)) >= Asc("啊") And Asc(Left(mystr, 1)) < Asc("匝") then 执行就是判断全部中文汉字,不包括中文标点符号,因为符号的ASCII怎么分布我查不到。楼主查到记得分享一下。谢谢。
      

  2.   

    Option ExplicitPrivate Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii = 0 Then Exit Sub
        If KeyAscii >= 0 Then KeyAscii = 0
    End Sub
      

  3.   

    利用ASCII码判断,汉字的码的值好像是小于0 
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii <0 0 Then 
           Text1.Text=""    
        End If
    End Sub
      

  4.   

    '*************************************************************************
    '**函 数 名:CLen
    '**输    入:str(String) -要判断的字符串
    '**输    出:(Long) -汉字的个数
    '**功能描述:判断字符串中是否全部是汉字
    '**          没有汉字返回0
    '**全局变量:
    '**调用模块:
    '**作    者:影子
    '**日    期:2005-01-04 12:43:48
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Function CLen(str As String) As Long
        Static SStr As String    Dim i As Integer, TotalNum As Long, l As Long    Dim tmpStr As String    TotalNum = 0    l = Len(str)    For i = 1 To l        tmpStr = StrConv(Mid$(str, i, 1), vbWide)        If Asc(Mid$(str, i, 1)) < 0 Then            TotalNum = TotalNum + 1            SStr = str        Else            '            MsgBox "写入的不是汉字!"            CLen = 0            Exit Function        End If    Next i    CLen = TotalNumEnd Function
      

  5.   

    只允许输入中文的要求比较怪:一般来说,能输入中文的地方就应该也能输入其他字符。以下程序段可以实现的功能:
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii < 0 Then 
           Text1.Text=""    
        End If
    End Sub原理是因为中文的ASCII小于0。
    不过,严格说来,还有个问题就是:其他非英文如日文、韩文等其他非英语和数字的ACSII值都是小于0,所以严格地说实际上要实现你的要求你还得查一下中文ASCII的分段。
      

  6.   

    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If KeyAscii = 0 Then Exit Sub   '这句什么意思呀
        If KeyAscii >= 0 Then KeyAscii = 0
    End Sub