我是C#的新手,所以您能解决我的问题吗?我有两种形式: Form1
和Form2
。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);
}
}
答案 0 :(得分:0)
据我了解,
您必须将Form1中的列表视图项复制到Form2中的列表视图
在这里您可以用简单的方式完成
您的Form1.cs
外观
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
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的第一个列表视图项。