【问题标题】:Non-invocable member 'System.Windows.Forms.ListView.SelectedItems' cannot be used like a method不可调用的成员 'System.Windows.Forms.ListView.SelectedItems' 不能像方法一样使用
【发布时间】:2016-05-01 09:03:36
【问题描述】:

尝试从 foreach() 中选择项目时失败。 我的代码如下:

foreach (ListViewItem LISTA in this.lstImgAdded.SelectedItems)
{
    lstImgAdded.SelectedItems(i).Remove();
}

【问题讨论】:

    标签: c#


    【解决方案1】:

    从末尾开始计数,一直计数到零。

    for (int i = listView1.Items.Count - 1; i >= 0; i--)
    {
        if (listView1.SelectedItems[i].Selected)
        {
            listView1.SelectedItems[i].Remove();
        }
    }
    

    如果您有 10 个项目并删除第一个项目,则列表只剩下 9 个项目。一旦您尝试删除丢失的项目,在这种情况下是第 6 次,您就会收到错误消息。

    【讨论】:

    • 您正在遍历所有项目,而不是 SelectedItems 集合。有什么好处?
    • 好地方。今天早上我还没有喝咖啡!
    【解决方案2】:

    不管语法错误(索引器必须使用[i] 而不是(i)),这里不需要索引器。只需在枚举项上直接使用ListViewItem.Remove

    foreach (ListViewItem item in lstImgAdded.SelectedItems)
    {
        item.Remove();
    }
    

    另外,你应该注意两点:

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2016-04-11
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多