Самый прямой способ сделать это - использовать события.Вы можете добавить событие на 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