現我有一些字串(是 Recordset 中的兩個欄位中的值組合而已)﹐如下﹕
頭庄 0001
前心 0002
頭庄內裡 0003
頭庄補強 0004
頭庄飾片 0005
頭庄外片 0006
頭庄內片 0007
頭庄內裡內 0008
頭庄內裡外 0009
頭庄補強外 0010
頭庄補強內 0011
頭庄飾片外 0012
頭庄飾片內 0013
頭庄接片 0014
頭庄接片補 0015現我要將其對齊顯示﹐我用的方法如下﹕
rs.MoveFirst
Do While Not rs.EOF
strNodeName = rs.Fields("part_nm").Value
Debug.Print strNodeName & Space(16 - Len(strNodeName)) & rs.Fields("part_no").Value
Set Nod = tvwTree.Nodes.Add(, , , strNodeName & Space(16 - Len(strNodeName)) & rs.Fields("part_no").Value)
rs.MoveNext
Loop可顯示出來的值為什么總是沒對齊呢﹐我算了一下﹐差不多每一個字相差1.5 個字位。
顯示如上所貼。其中 rs.fields("part_nm") 的欄位寬度為16 (varchar) ; rs.fields("part_no") 的欄位寬度為 4 (varchar ) .
以前我做過這對齊方式﹐但沒有出現這種巽常情況的呀。
是不是VB 的問題還是我哪里有寫錯的問題呢。
頭庄 0001
前心 0002
頭庄內裡 0003
頭庄補強 0004
頭庄飾片 0005
頭庄外片 0006
頭庄內片 0007
頭庄內裡內 0008
頭庄內裡外 0009
頭庄補強外 0010
頭庄補強內 0011
頭庄飾片外 0012
頭庄飾片內 0013
頭庄接片 0014
頭庄接片補 0015現我要將其對齊顯示﹐我用的方法如下﹕
rs.MoveFirst
Do While Not rs.EOF
strNodeName = rs.Fields("part_nm").Value
Debug.Print strNodeName & Space(16 - Len(strNodeName)) & rs.Fields("part_no").Value
Set Nod = tvwTree.Nodes.Add(, , , strNodeName & Space(16 - Len(strNodeName)) & rs.Fields("part_no").Value)
rs.MoveNext
Loop可顯示出來的值為什么總是沒對齊呢﹐我算了一下﹐差不多每一個字相差1.5 個字位。
顯示如上所貼。其中 rs.fields("part_nm") 的欄位寬度為16 (varchar) ; rs.fields("part_no") 的欄位寬度為 4 (varchar ) .
以前我做過這對齊方式﹐但沒有出現這種巽常情況的呀。
是不是VB 的問題還是我哪里有寫錯的問題呢。
解决方案 »
- 地主散分
- 用Excel 2007库写的程序,可以用到excel xp的机器上么?
- VB和codesoft问题请高手指教!!
- vb做的dll能运行吗,和一般的exe有什么区别吗,我第一次用,不懂,望指教
- 请问各位高手,如何在listbox控件中的每一项前面添加checkbox复选框啊?
- 如何编写读取主板、CPU、硬盘信息的程序,并作成DLL
- EXCEL 导入 ACCESS 问题,
- picturebox对流媒体的播放
- 为什么vb的toolbar中只能插入.bmp和.ico类型的图片呢???????
- VB操作Excel生成报表预览时如何屏蔽Excel的启动过程而直接显示预览窗口?
- 关于VB中使用文件打包的问题
- 搞图像的请看:http://www.skycn.net/soft/12024.html
如果只有中文字符在strNodeName中,可将
Debug.Print strNodeName & Space(16 - Len(strNodeName)) & rs.Fields
改为
Debug.Print strNodeName & Space(16 - 2*Len(strNodeName)) & rs.Fields
也可以使用测字节长度的函数,好像是blen(),你自己查msdn吧
Do While Not rs.EOF
strNodeName = rs.Fields("part_nm").Value
Debug.Print strNodeName & Space(16 - LenB(strNodeName)) & rs.Fields("part_no").Value
Set Nod = tvwTree.Nodes.Add(, , , strNodeName & Space(16 - LenB(strNodeName)) & rs.Fields("part_no").Value)
rs.MoveNext
Loop
不然會出現錯誤。因為當我的 part_nm 中的值超出 8 個漢字時就會出問題。
本來在開始時我也想這么做的﹐但我如果那樣的話﹐會用掉很多的空間來顯示空格列了。
除了這還有其他辦法嗎﹖
A001 As String * 30
A002 As Strinf * 10
end type'///////定义////////////
dim CharDeal as tagPostionrs.MoveFirst
Do While Not rs.EOF
CharDeal.A001= rs.Fields("part_nm").Value
CharDeal.A002= rs.Fields("part_no").Value
Debug.Print CharDeal.A001 & CharDeal.A002
rs.MoveNext
Loop
"Strinf"为"String"
笔误。
不行啊。我測試了用定長﹐顯示的還是一樣的﹐位置對不齊。to a_cer(玩家) , xz8000(小熊) :
我用lenb 可以在debug.print 中顯示正常﹐可為什么當我放到 TreeView 控件中時
顯示的又不對齊了昵﹐是不是TreeView 控件本身不支持這樣的對齊方式還是在處理字串時
有其他的規則呢﹖