从ListView1中的行复制的数据未出现在ListView2中

时间:2019-02-10 07:51:45

标签: listview vb6

此代码应将任何选定的项目从ListView1复制到ListView2。它正在复制一项,但是索引1和2上的子项显示为空白。

Private Sub Command1_Click()
    ListView2.ListItems.Add = ListView1.SelectedItem

    ListView2.SelectedItem.SubItems(2) = ListView1.SelectedItem.SubItems(2)
    ListView2.SelectedItem.SubItems(1) = ListView1.SelectedItem.SubItems(1)

End Sub

1 个答案:

答案 0 :(得分:3)

此行:

ListView2.ListItems.Add ListView1.SelectedItem

将所选项目的副本从ListView1添加到ListView2

但是,它不会选择新项目。因此,接下来的两行代码:

ListView2.SelectedItem.SubItems(2) = ListView1.SelectedItem.SubItems(2)
ListView2.SelectedItem.SubItems(1) = ListView1.SelectedItem.SubItems(1)

不执行您希望的操作,因为ListView2.SelectedItem不是您刚刚添加的项目。

要使代码正常工作,请编写代码,以便保留对添加到变量中的项目的引用,然后设置该项目的属性:

Private Sub Command1_Click()

    Dim li As ListItem
    Set li = ListView2.ListItems.Add ListView1.SelectedItem

    li.SubItems(2) = ListView1.SelectedItem.SubItems(2)
    li.SubItems(1) = ListView1.SelectedItem.SubItems(1)

End Sub

请为控件命名,以比默认的Command1 / ListView2更具描述性!