从数据库中得到各字段得  值 如:姓名:小张      性别:男
单位:sun公司   职位:工程师这样两列显示  中间用空格间隔  可是读取出来得 值 有得是数字 字母 和 汉字我是这么做得用一个固定长度如 姓名:field("name").vale & space(20 -len(field("name").vale) )  本想让 姓名  和 性别列宽度间隔 20 可总对不齐
大家有什么好得方法  ?

解决方案 »

  1.   

    field("name").value & space( LenB(StrConv(field("name").vale, vbFromUnicode)))
      

  2.   

    len("汉字")=len("hz")=2lenb("汉字")=len("hanz")=4取得字符串的真正字节长度,建议用api函数lstrlen
    lstrlen("汉字abc,asi")=11
    这个函数汉字算两个字节,字母和其它半角符号都算一个字节。另外你在RichText里,要对齐,字体得用等宽字体,要不然就算计算出字节了,也无法对齐。最好的办法是GetTextExtentPoint,DrawText。自己画。呵呵
      

  3.   

    chinawcs() 你没试过我给的代码么?
    field("name").value & space( LenB(StrConv(field("name").vale, vbFromUnicode)))
    已经把中文作为2个字符长度处理了
      

  4.   

    field("name").vale 应该是field("name").value 吧
      

  5.   

    to ayalicer(小刀惋心) ( )lenb在把中文作为双字节处理的同时,由于vb用的是unicode,所以英文也被认为是两个双字节的。因此才想起来,我上面的代码也错了
    应该是
    lenb("汉字")=lenb("hz")=4
      

  6.   

    但是我已经把字符串转换了StrConv(field("name").vale, vbFromUnicode)
    这样英文Lenb长度作为1print lenb(StrConv("123大大",vbFromUnicode))
    结果是7 不是10
      

  7.   

    如果在RTB控件中对齐,建议采用制表位Tab进行对齐。这里有您想要的东西:www.cnpopsoft.com [华普软件]关于RichTextBox的很多功能扩展包括RTF文本格式规范这里都能够找到!~