Я вижу два варианта решения,
первый — окно НЕ модальное, тогда:
Form f = new Form();
f.Show(); //Запускаем окно
StartMove(); //Функция переноса
f.Close(); //Закрытие окна
Мне непонятно, почему вы настаиваете, чтобы окно было именно модальным — объясните.
второй, окно модальное и код длительной операции запускается из события Activate у модальной формы.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение