Gut, halt mal ein schnelles Beispiel (bspw. ohne Prüfung, ob aus dem richtigen Thread auf die Controls zugegriffen werden), nur um EINE Lösung zu verdeutlichen:
Form1 hat eine leere Listbox (listBox1) und einen Button (button1):
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 _f2 = new Form2(this.listBox1);
_f2.Show();
}
}
Form2, in der auf die Listbox (ohne Prüfung etc) zugegriffen wird, indem die Listbox bzw. besser Referenz dem Konstruktor der Form2 übergeben wird:
public partial class Form2 : Form
{
private ListBox _lb = null;
public Form2()
{
InitializeComponent();
}
public Form2(ListBox form1Listbox)
: this()
{
this._lb = form1Listbox;
}
private void button1_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(this.textBox1.Text))
{
this._lb.Items.Add(this.textBox1.Text);
}
}
}
Gibt weitaus mehr Möglichkeiten, wie man das von Dir geschilderte Problem lösen könnte, ist halt eine.
Für threadsicheren Aufruf daher noch bspw. folgendes beachten: http://blog.psychocoder.net/index.php/2010/07/03/extension-methods-invokerequired/