【问题标题】:Vb.net delete from multiple listviewsvb.net 从多个列表视图中删除
【发布时间】:2017-06-27 21:16:19
【问题描述】:

我有一个将数据插入两个 Listviews 的系统,当它在 Listviews1 中选择一个 Line 并单击它删除所选行的按钮时。 但我需要将其擦除到另一个 Listview,因为数据是相同的。 要在 Listviews1 中删除,我使用以下代码:

将 lvi 调暗为 ListViewItem

    For Each lvi In lv1.SelectedItems

        lvi.Remove()
    Next

【问题讨论】:

  • 其他列表视图中是否选择了相同的项目?

标签: vb.net listview


【解决方案1】:

我认为最简单的方法是运行反向 for loop 并根据找到的任何选定项目的索引从两个列表视图中删除。这样做的原因是,如果您自上而下运行,您将更改集合,并且您将无法删除项目,因为这会更改索引。这就是我要开始的内容。

    For x As Integer = Lv1.Items.Count - 1 To 0 Step -1 
        If Lv1.Items(x).Selected = True Then
            Lv2.Items(x).Remove()
            Lv1.Items(x).Remove()
        End If
    Next

此代码假定 Lv1 是带有选定项目的列表视图。它所做的是从列表中的最后一项开始并检查它是否被选中。如果是,它会根据它的索引从 lv2 以及它自身中删除该项目。这在 lv1 上重复,直到达到索引 0。它还要求两个 lv 具有相同的数据,您所说的实际上是这种情况。您没有指定的是每个 lv 的数据是否也在同一行中。如果不是这种情况,这将不起作用。它仅删除行。换句话说,如果您有 lv1 的行 red, green & blue 和 lv2 的行 blue, red & green 并且您在 lv1 中突出显示红色,那么蓝色将从 lv2 中删除,因为蓝色与红色在同一行。

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多