最直接的方法是使用事件。您可以添加一个事件form2
每次添加项目时都会触发该事件,并包含要插入的文本(您有多条信息,因此自定义数据类型比较合适)。然后您可以添加一个处理程序方法form2
它将项目添加到其 ListView 中。然后,您在创建这两种形式的代码中将两者结合在一起,生活应该会很美好。
因此,为了提供一些代码,首先是事件的数据结构:
public delegate void HandleItemAdded(object sender, ItemAddedEventArgs e);
public struct ItemAddedEventArgs : EventArgs
{
public string Name;
public string Email;
public string Phone;
public ItemAddedEventArgs(string name, string email, string phone)
{
Name = name;
Email = email;
Phone = phone;
}
}
然后我们就有了事件代码form2
public event HandleItemAdded ItemAdded;
// .. some other stuff
public void RaiseItemAdded(ItemAddedEventArgs e)
{
if(ItemAdded != null)
ItemAdded(this,e);
}
// ... now for your AddToList
public void AddToList()
{
RaiseItemAdded(new ItemAddedEventArgs(txtName.Text,txtEmail.Text, txtPhone.Text);
}
现在我们可以添加一个处理程序form1
public void HandleItemAdded(object sender, ItemAddedEventArgs e)
{
ListViewItem item1 = new ListViewItem(txtName.Text);
item1.SubItems.Add(txtEmail.Text);
item1.SubItems.Add(txtPhone.Text);
MyListView.Add(item1);
}
最后但并非最不重要的一点是我们需要将它们联系在一起
//...not sure what your code looks like, but we'll assume we have instances of the two forms named form1Form and form2Form
form2Form.ItemAdded += form1Form.HandleItemAdded