У второй формы есть событие OnClose().
У первой формы создаете открытое поле bool secondFormShowed.
У второй создаете поле readonly Form1 Creator, создаете конструктор
public Form2 (Form1 frm)
{
Creator = frm;
// Тут еще инициализация компонентов, создается по умолчанию. Что-то вроде InitializeComponents()
}
Перегружаете событие OnClose() у формы Form2, там вписываете
Creator.secondFormShowed = true;
Получите код вроде
using(Form2 waitForm = new Form2(this))
{
this.secondFormShowed = false;
this.Enabled = false;
waitForm.Show();
while(!this.secondFormShowed)
{
Thread.Sleep(1000); // Пока переменная не установлена в true второй формой
}
MessageBox.Show("test");
this.Enabled = true;
}
Ориентироваться на Owner мне несколько стремно, мало ли где он потом изменится. Однако можно использовать и его вместо Creator.
Плюс, как более сложный с непривычки вариант, смотрите свой предыдущий вопрос и мой ответ, про механизм событий.