回 帖 发 新 帖 刷新版面

主题:listview如何在不加数据的情况下,初始化表头呀,为何我的代码执行后,表头没有显示呢?

listview如何在不加数据的情况下,初始化表头呀,为何我的代码执行后,表头没有显示呢? 

'listview初始化
Private Sub listviewInit()
    With lvw1
        .ListItems.Clear
        .ColumnHeaders.Add , , "书号", 1000
        .ColumnHeaders.Add , , "版次", 800
        .ColumnHeaders.Add , , "书名", 3000
        .ColumnHeaders.Add , , "开型", 800
        .ColumnHeaders.Add , , "尺寸", 800
        .ColumnHeaders.Add , , "印张", 500
        .ColumnHeaders.Add , , "定价", 500
    End With
End Sub



我的目的是想初始化一个表头,在窗体加载时,虽然还没有记录,但是只显示一个表头,但是表头却不会出来,这是为什么呢? 
如何实现我的需求呢?难道必须填上数据才行吗?

回复列表 (共3个回复)

沙发

lvw1.View = lvwReport

板凳

lvw1.View = lvwReport

3 楼

给你一个自己写的添加头列:
调用: AddLvwHeads ListView, "序号=800","列名1=1500","列名2=3000"


'添加 ListView 控件头列表
'AddLvwItem ListView控件, [可选 列名=列宽度   例如:编号=800] ...
Public Sub AddLvwHeads(objLvw As ListView, ParamArray pItem())
    Dim i As Long
    Dim k As Long
    Dim str1 As String
    Dim str2 As String

    If UBound(pItem) = -1 Then Exit Sub

    With objLvw
        .ColumnHeaders.Clear
        .ListItems.Clear
        .HideColumnHeaders = False
        .View = lvwReport

        For i = 0 To UBound(pItem)
            k = InStrRev(pItem(i), "=")

            If k = 0 Then
                str1 = pItem(i)
                str2 = ""

            Else
                str1 = Left$(pItem(i), k - 1)
                str2 = Right$(pItem(i), Len(pItem(i)) - k)

            End If

            .ColumnHeaders.Add , , str1
            If Len(str2) > 0 Then .ColumnHeaders(i + 1).Width = Val(str2)
        Next
    End With
End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册