注册 登录
编程论坛 VB6论坛

我在 listbox 里显示了一列数组,见附件,现在我想在其后面显示两列其他数组,内容与前面的数组没有关联,不知道用什么函数,那个 Format 函数可以吗?怎

kunsong 发布于 2014-05-03 15:11, 2994 次点击
我在listbox里显示了一列数组,见附件,现在我想在其后面显示两列其他数组,内容与前面的数组没有关联,不知道用什么函数,那个Format函数可以吗?怎么用呢?
12 回复
#2
kunsong2014-05-03 15:18
请哪位大神指点一下 啊
#3
tw_love_code2014-05-03 15:44
回复 2 楼 kunsong
你的附件呢?
#4
kunsong2014-05-03 16:24
回复 2 楼 kunsong
不知道附件去哪里了,就是我想在listbox 显示三列数组,相当于第一个数组是序号,第二个数组是年龄,第三个数组是工时的那种,里面数字先用任意一个数吧,可以不?
#5
kunsong2014-05-03 16:52
大神们,帮忙啊
#6
tw_love_code2014-05-03 18:20
听你这情况好像可以 发个示意图看看。
这是我的理解:
*************
*1 XX XX:XX*
*2 XX XX:XX*
*3 XX XX:XX*
*4 XX XX:XX*
.............
*n XX XX:XX*

你是要这效果么?
#7
lowxiong2014-05-03 18:36
listbox虽然也支持多列显示,但是单一数据类型,如果将listbox的columns值设为2,当在listbox添加数据大于当前显示行数时,就会从第二列开始显示,你这种情况适合使用MSFlexGrid控件显示你的数据,如果非要用listbox显示多列数据,就只能自己写代码格式化显示效果了,好像format函数不行。
#8
kunsong2014-05-03 18:39
回复 6 楼 tw_love_code
对的啊
#9
kunsong2014-05-03 18:40
回复 7 楼 lowxiong
嗯,谢谢
#10
tw_love_code2014-05-03 19:37
这是我给的效果的代码:
程序代码:

Dim a(10) As Integer
Dim b(10) As String
Private Sub Command1_Click()
   
    For j = 0 To 9 Step 1
        
        x = InputBox("请输入年龄", "获取年龄")
        a(j) = x
        
    Next j
            
End Sub

Private Sub Command2_Click()

 
    For j = 0 To 9 Step 1
        
        y = InputBox("请输入工时", "获取工时")
        b(j) = y
        
    Next j

End Sub

Private Sub Command3_Click()

    For i = 0 To 9 Step 1
        
        rec = Format(i + 1, "000")  '为了整齐输出
        nl = Format(a(i), "000")
        List1.List(i) = rec & "---" & nl & "---" & b(i)
        
    Next i
End Sub


这是程序界面:
只有本站会员才能查看附件,请 登录

这是试运行效果:
只有本站会员才能查看附件,请 登录

望采纳!

[ 本帖最后由 tw_love_code 于 2014-5-3 19:41 编辑 ]
#11
kunsong2014-05-03 20:03
回复 10 楼 tw_love_code
谢谢你,我现在采用text了,现在还有一个问题,就是我先显示“序号”、“点数”、“误差”,然后接下来再显示数组怎么做呢?这是我的效果:你看看,有重复,如何不让他重复?怎么放图片啊?

[ 本帖最后由 kunsong 于 2014-5-3 20:04 编辑 ]
#12
xzlxzlxzl2014-05-04 07:30
format函数似乎只对数字、日期有效,对文本不起作用,我觉得自己写个函数处理比较方便,如下:
private function StrFmt(ExtPr as string,sLen as integer,Align as boolean) as string
  dim a as string
  a=left(extpr,slen)
  if align then
    StrFmt=a & space(slen-len(a))     '左对齐
  else
    StrFmt=space(slen-len(a)) & a     '右对齐
  endif
end function

调用方法
list1.additem   StrFmt("序号",8,true) & StrFmt("点数",8,true) & StrFmt("误差",8,true)
#13
tw_love_code2014-05-04 09:33
回复 12 楼 xzlxzlxzl
你这个没错,楼主想的是第一行显示文本
接下来全是,数据,类似于Excel,
昨晚,我们已经解决这个问题了,
1