If the Form1 is the MDIparent, you can loop through the MdiChildren property. Something like:
foreach (Form mdiChild in this.MdiChildren) {
if (mdiChild is Form2) {
}
}
I wouldn't advice to directly get the value of a text box from the child form (even though it's possible). Instead define a method in Form2 and call that method from the previous code example. In this method get the data from the text box, possibly modify it if needed and then return it. The method could be simply:
public string GetTextBoxText() {
return this.textbox2.Text;
}