以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]ListView从FTP返加数据显示模式为详细信息  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77220)

--  作者:weigqing9
--  发布时间:2015/11/13 8:14:00
--  [求助]ListView从FTP返加数据显示模式为详细信息
Dim lvw As WinForm.ListView = Forms("附件").Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.View = ViewMode.Details  \'显示模式为详细内容
lvw.GridLines = True \'显示网格线
Dim cls() As String = {"名称","类型","修改日期","大小"} \'指定要显示的各列
Dim wds() As Integer = {220,100,75,80} \'定义列宽
For i As Integer = 0 To  cls.Length - 1
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()\'增加列
    c.Name = cls(i) \'指定列名
    c.Text = cls(i)\'指定列标题
    c.Width = wds(i) \'指定列宽
Next
lvw.VirtualMode = True \'使用虚拟模式
lvw.ResumeRedraw() \'恢复绘制

Dim sts As List(of String) = ftp.GetDetailList(fp)\'返回FTP服务器指定目录下的全部文件和子目录,包括文件的名称,修改时间和大小,各项之间用符号*分隔.
If sts.Count > 0 Then  \'若有文件
    For Each st As String In sts
        Dim vr As WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
        vr(st) = sts(st)\'这句出错了,把返回的字符串分隔并填入相应的列,请老师补充代码,谢谢!
    Next
End If
[此贴子已经被作者于2015/11/13 8:15:42编辑过]

--  作者:Hyphen
--  发布时间:2015/11/13 8:57:00
--  

 

[此贴子已经被作者于2015/11/13 9:02:42编辑过]

--  作者:Hyphen
--  发布时间:2015/11/13 9:03:00
--  
Dim cols() As String = { "名称","修改日期","大小" }
Dim sts As List(of String) = ftp.GetDetailList(fp) \'返回FTP服务器指定目录下的全部文件和子目录,包括文件的名称,修改时间和大小,各项之间用符号*分隔.
If sts.Count > 0 Then  \'若有文件
    For Each st As String In sts
        Dim vr As WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
        Dim s() As String = st.Split("*")
        For i As Integer = 0 To cols.Length-1
            vr(cols(i)) = s(i)
            If i=2  Then
                If s(i) <> "D" Then
                    vr("类型") = "文件"
                Else
                    vr(cols(i)) = ""
                    vr("类型") = "目录"
                End id
            End If
        Next
    Next
End If

--  作者:weigqing9
--  发布时间:2015/11/13 11:26:00
--  
完美解决,感谢你!