C#检查所有列表视图组中除第一项以外的所有项目

时间:2014-01-26 15:09:36

标签: c# listview

尝试检查除第一项以外的组中的所有项目时遇到问题,我使用下面的代码,它实际上只是检查列表视图中除第一项之外的所有项目。

    foreach (ListViewGroup grp in listFiles.Groups)
    {
        foreach (ListViewItem item in grp.Items)
        {
            if (item.Index != 0)
            {
                item.Checked = true;
            }
        }
    }

很抱歉,如果这个问题有点令人困惑: 这就是它的作用:

enter image description here

我想要它做什么:

enter image description here

感谢您的任何意见。

4 个答案:

答案 0 :(得分:2)

试试这个:

int i;
foreach (ListViewGroup grp in listFiles.Groups)
{
   i = 0;
   foreach (ListViewItem item in grp.Items)
   {
      if (i != 0)
         item.Checked = true;

      i++;
   }
}

答案 1 :(得分:1)

不要使用Index属性,

foreach (ListViewGroup grp in listFiles.Groups)
    {
      bool FirstItem = false;
        foreach (ListViewItem item in grp.Items)
        {
            if (!FirstItem)
            {
                item.Checked = false;
                FirstItem = true;
            }
            else
            {
                item.Checked = true;
            }
        }
    }

答案 2 :(得分:1)

foreach (ListViewGroup grp in listFiles.Groups)
{
    int i = 0;
    foreach (ListViewItem item in grp.Items)
    {
        if (i != 0)
        {
            item.Checked = true;
        }
        i++;
    }
}

答案 3 :(得分:1)

问题已经回答,但这是另一种选择:

foreach (ListViewGroup grp in listFiles.Groups)
{
    foreach (var item in grp.Items.Cast<ListViewItem>().Skip(1))
    {
        item.Checked = true;
    }
}