我重数据表里读出个地址,然后在1个PICTURE上画了个表格,表格的宽度不能把这行数据全部显示下来,如何把这段数据平均下分行显示,我原本用LEN来判断字符数量,看1行能放几个汉字来平均分,可是数据里有数字和字母,这样每行就老是出现长短,问下解决方案!

解决方案 »

  1.   

    len无论数字字母汉字都作为1处理,要汉字为2用这个LenB(Text, vbFromUnicode)),或者用API lstrlen
      

  2.   

    len(strconv( "cs社区中心 ",vbFromunicode)) 
    是这个吧!~你缺了点害的我好找
      

  3.   

    1个字母数字算长度1,7个中文长度应该是14最好情况14个字母,这时Len得到的是14
    最坏情况7个中文,这时Len得到的是7Dim i as Integer
    For i=7 to 15
      if i个字符的长度大于14 then
        切Len(i-1)
      endif
    next
      

  4.   

    'ClassText(1)第一行
    'ClassText(2)第二行
    'Text为要打印的字符串
    ClassCount = LenB(StrConv(Text, vbFromUnicode))
    ClassCount2 = Len(Text)
    If ClassCount > 7 Then
       For RowCount = 1 To ClassCount2
          If Asc(Mid(Text, RowCount, 1)) > 127 Or Asc(Mid(Text, RowCount, 1)) < 0 Then
             MidStringC = MidStringC + 2
             If MidStringC <= 7 Then
                ClassText(1) = ClassText(1) + Mid(Text, RowCount, 1)
             Else
                ClassText(2) = ClassText(2) + Mid(Text, RowCount, 1)
             End If
          Else
             MidStringC = MidStringC + 1
             If MidStringC <= 7 Then
                ClassText(1) = ClassText(1) + Mid(Text, RowCount, 1)
             Else
                ClassText(2) = ClassText(2) + Mid(Text, RowCount, 1)
             End If
          End If
       Next
    Else
       ClassText(1) = Text
       ClassText(2) = ""
    End If
      

  5.   

    Picture1.TextWidth("要写的字")来计算字符串画在picture中的宽度