如何将ListView数据复制到其他表单的ListView C#

时间:2018-07-23 08:16:17

标签: c# forms listview

我是C#的新手,所以您能解决我的问题吗?我有两种形式: Form1Form2。Form1包含Listview1,Form2包含listviewnew。在Form1中,我在listview1上添加了一些值,并且按钮名称为Prew。我知道如何像下面的代码一样,以相同的形式将一个列表视图复制到另一个列表视图,但是我想这样做;当我单击Prew按钮时,将listview1(FORM1)复制到listviewnew(FORM2)。

private void prew_Click(object sender, EventArgs e)
        {
            List<ListViewItem> myList = new List<ListViewItem>();

            foreach (ListViewItem lvi in this.listView1.Items)
            {
                myList.Add(lvi);
            }

            this.listView1.Items.Clear(); // cut and paste it at the end of 2nd foreach iteration.

            foreach (ListViewItem lvi in myList)
            {
                this.listView2.Items.Add(lvi);
            } 
        }

1 个答案:

答案 0 :(得分:0)

据我了解,

您必须将Form1中的列表视图项复制到Form2中的列表视图

在这里您可以用简单的方式完成

您的Form1.cs外观

enter image description here

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        listView1.Items.Add("ABC");
        listView1.Items.Add("PQR");
        listView1.Items.Add("XYZ");
    }

    private void btn_prew_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2(listView1);
        frm2.Show();

    }
}

还有Form2.cs

enter image description here

public partial class Form2 : Form
    {
        public ListView _listView { get; set; }

        public Form2()
        {
            InitializeComponent();
        }

        public Form2(ListView listView)
        {
            _listView = listView;
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            listView1.Items.AddRange((from ListViewItem item in _listView.Items
                                      select (ListViewItem)item.Clone()).ToArray());
        }
    }

您只需使用

Form1.cs中的列表视图传递给Form2.cs

public ListView _listView { get; set; }属性。

尝试一次,可能对您有帮助。

您根本不会将列表视图项从一个复制到另一个。因此,您必须Clone()从Form1到列表视图再到Form2的第一个列表视图项。