如何将listview数据复制到其他表单';s listview c#

如何将listview数据复制到其他表单';s listview c#,c#,forms,listview,C#,Forms,Listview,我是c#的新手,请你帮我解决我的问题Form1和Form2。Form1包括Listview1和Form2包括listviewnew。在Form1中,我在Listview1上添加了一些值,并且我有一个按钮名Prew。我知道如何将一个listview以相同的形式复制到另一个listview,就像下面的代码一样,但我想这样做;当我单击Prew按钮时,将listview1(FORM1)复制到listviewnew(FORM2) private void prew\u单击(对象发送方,事件参数e) { L

我是c#的新手,请你帮我解决我的问题
Form1
Form2
。Form1包括
Listview1
和Form2包括
listviewnew
。在Form1中,我在Listview1上添加了一些值,并且我有一个按钮名
Prew
。我知道如何将一个listview以相同的形式复制到另一个listview,就像下面的代码一样,但我想这样做;当我单击
Prew
按钮时,将listview1(FORM1)复制到listviewnew(FORM2)

private void prew\u单击(对象发送方,事件参数e)
{
List myList=新列表();
foreach(此.listView1.Items中的ListViewItem lvi)
{
添加(lvi);
}
this.listView1.Items.Clear();//在每次迭代的第二次结束时剪切并粘贴它。
foreach(myList中的ListViewItem lvi)
{
this.listView2.Items.Add(lvi);
} 
}
据我所知

您必须将Form1中的listview项复制到Form2中的listview

在这里,你可以用简单的方法来做这件事

您的
Form1.cs
看起来像

Form2.cs

您只需将
Form1.cs
中的listview传递给
Form2.cs

public ListView\u ListView{get;set;}
属性

试试看,也许对你有帮助


您只是不能将listview项从一个复制到另一个。因此,您必须
克隆()
您的第一个listview项目从Form1到listview项目再到Form2。

Form1和Form2是否以某种方式建立了连接?是,当我单击prew按钮时,它会打开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);
            } 
        }
 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();

    }
}
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());
        }
    }