诶,保险起见,用lstrlen吧(API Viewer 里有声明),这样获得的长度比较准确。汉字长度2,英语字母长度1。

解决方案 »

  1.   

    也可以不用API,asc函数,汉字为负,字符为正。
      

  2.   

    限制10位
    Private Sub txt1_KeyPress(KeyAscii As Integer)
            If LenB(StrConv(txt1.Text+chr(KeyAscii), vbFromUnicode)) >10 then KeyAscii=0
    End Sub
      

  3.   

    textbox.maxlength=10(自己定的长度)
      

  4.   

    对呀,用maxlength属性,多了就自动没了
      

  5.   

    你把要放入textbox中的东西放到一个字符串中,让侯控制他的到小不就行乐
      

  6.   

    VB中英文与中文的长度是一致的!用maxlength属性就行了!
      

  7.   

    API:限制的是字节数
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWND As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Const EM_LIMITTEXT = &HC5
    Public Const CB_LIMITTEXT = &H141
    Public Const Max_Char = 10Call SendMessage(txtName.hWND, EM_LIMITTEXT, Max_Char, 0&)
    换上 CB_LIMITTEXT 还可以控制COMBO的字符串长度。
      

  8.   

    newyon(newyon):
    我还真不知道中文、英文长度一致的,
    你在数据库里定义一个10个字符的字段,看看插入10个汉字会不会出错