将listview中已检查项目的克隆副本与其他文本框数据/ C#一起添加到新项目中

时间:2012-11-11 06:55:47

标签: c# c#-4.0 c#-3.0 c#-2.0

我正在尝试将listviewOne中所有已检查项目的克隆副本添加到listviewTwo。 以及listviewTwo的其他文本框值。但是我收到了错误..请有人帮助我..

private void button4_Click(object sender, EventArgs e)
        {

            foreach (ListViewItem item in listView1.Items)
                if (item.Checked)
                {
        ListViewItem lvi = new ListViewItem();
        lvi.SubItems.Add(textBox1.Text);
        lvi.SubItems.Add(textBox2.Text);
        lvi.SubItems.Add(textBox3.Text);
        lvi.SubItems.Add(textBox4.Text);
        lvi.SubItems.Add(item.Text);
        listView2.Items.Add(lvi);
                }
        }

1 个答案:

答案 0 :(得分:0)

此行有错误:

lvi.SubItems.Add((ListViewItem)item.Clone());

您无法向SubItems集合添加ListViewItem。您可以添加ListViewSubItem或添加字符串(使用该字符串创建新项目)。

在这种情况下,如果使用listView1中选中项目中的文本创建新子项,可能就足够了。将行更改为:

lvi.SubItems.Add(item.Text);

好的,所以你希望listView1中的所有subItem都添加到listView2的项目中。试试这个:

foreach (ListViewItem item in listView1.Items)
{
    if (item.Checked)
    {
        ListViewItem lvi = new ListViewItem();
        lvi.SubItems.Add(textBox1.Text);
        lvi.SubItems.Add(textBox2.Text);
        lvi.SubItems.Add(textBox3.Text);
        lvi.SubItems.Add(textBox4.Text);
        foreach (ListViewSubItem subItem in item.SubItems)
        {
            lvi.SubItems.Add(subItem);
        }
        listView2.Items.Add(lvi);
    }
}