首页 > 解决方案 > VBA Excel ListView 复选框不显示在用户窗体中

问题描述

我有一个带有 MultipageControl(名称 Controller_MultiPage)的用户窗体。在运行时,我的代码将页面添加到 Multipage 并在每个页面上创建一个 newListView。每个 ListView 都有:

      With newListView
        .MultiSelect = False
        .Width = Controller_MultiPage.Width - 10
        .Height = Controller_MultiPage.Height - 20
        .View = lvwReport
        .HideColumnHeaders = False
        .ColumnHeaders.Add Text:="Signal Name", Width:=.Width / 10 * 4
        .ColumnHeaders.Add Text:="Type", Width:=.Width / 10
        .ColumnHeaders.Add Text:="I/O", Width:=.Width / 10
        .ColumnHeaders.Add Text:="Description", Width:=.Width / 10 * 4
        .CheckBoxes = True
        .FullRowSelect = True
    End With

然后我用 XML 文件中的数据填充 newListView:

         For Each node In list
            With node.Attributes
                Set listItem = newListView.ListItems.Add(Text:=.getNamedItem("Name").Text)
                listItem.ListSubItems.Add = .getNamedItem("Type").Text
                listItem.ListSubItems.Add = IIf(.getNamedItem("Input").Text = "1", "IN", "OUT")
                listItem.ListSubItems.Add = .getNamedItem("Description").Text
                listItem.Checked = False
            End With
        Next

但复选框不显示。我可以在第一列前面看到它们的空间,然后单击该空间,然后出现该特定行的复选框。我还注意到,如果我更改属性

listItem.Checked = True

上述行为没有改变,当我单击第一列(复选框空间)前面的可用空间时,然后显示的 chsckbox 仍然未选中。任何想法?

标签: excelvbalistviewcheckbox

解决方案


我刚刚找到了同样问题的答案,我觉得自己很愚蠢。我将 Listview 的第一列设置为 Width = 0...,因此复选框将不再显示。我给了它一个宽度,一切都恢复了正常......


推荐阅读