如何将listview数据复制到其他表单';s listview c#
我是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
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());
}
}