如何在listview中使用复选框获取子项目

时间:2012-06-06 05:04:04

标签: c# winforms listview listviewitem

我目前正在尝试从每个已检查的listviewitem中的一列中获取所有子项,并将它们显示在richtextbox中,但我不知道该怎么做。这是我目前的代码。

我也在尝试在ItemChecked事件中执行此操作。

        foreach (ListViewItem item in listView1.Items)
        {
            if (listView1.CheckedItems.Count > 0)
            {
                richTextBox2.Text = listView1.CheckedItems[0].SubItems[1].Text;

            }
        }

我认为这样可行,但显然不行。感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

您正在替换每个循环中文本框的内容。尝试使用+=附加文字。您还需要选择正确的项目

richTextBox2.Text = String.Empty;
foreach (ListViewItem item in listView1.Items)
{
    if (item.Checked)
    {
        richTextBox2.Text += item.SubItems[1].Text + Environment.NewLine;
    }
}

您也可以使用LINQ表达式和String.Join

来编写它
richTextBox2.Text = String.Join(Environment.NewLine,
    from item in listView1.Items.OfType<ListViewItem>()
    where item.Checked
    select item.SubItems[1].Text);
相关问题