For that first you have to create a public property on Form2 which represent your textbox's Text property like this.
public string MyProperty
{
get{ return txtMyProperty.Text; }
set{ txtMyProperty.Text = value;}
}
Reason to do this is that you can't directly access the TextBox of Form2 on Form1 becuase it is defined as private.
Now on form1, in list's selected indexchanged you can set that property value of Form2 like this
private void listBox_SelectedIndexChanged(object sender, EventArgs e)
{
form2.MyProperty = listBox.SelectedText;
}