Ciao
Forse potresti servirti di una Form modale: invece che chiamare Form_2.Show(), usa Form_2.ShowDialog(); in questo modo la chiamata della funzione non ritorna finchè la Form non è stata chiusa:
Form Form_2 = new Form2();
this.Hide();
Form_2.ShowDialog();
this.Show();
Come mai dici che non puoi accedere alle proprietà di una Form diversa da this? Ad esempio:
bool f2vis = Form_2.Visible;
//oppure
Form_2.Visible = true;
Luca