Because in the Form2_Load
event you always create a new instance of Form1
and then access the Transfer
property which accesses listBox1.SelectedItem
which is not set for the newly created form.
You should rather pass a referece to form 1 in the button event:
on form1:
private void btnOpenForm2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.ShowDialog();
}
and on form2:
public partial class Form2 : Form
{
Form1 f1;
public Form2(Form1 f1)
{
this.f1 = f1;
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = this.f1.Transfer;
}
}