У меня странная проблема с отрисовкой форм в Compact Framework. У меня есть диалоговое окно входа в систему, которое в основном представляет собой небольшую форму, которая открывается поверх другой с помощью ShowDialog. Когда карта перемещается, диалоговое окно входа в систему должно закрываться, затем выполняются некоторые задачи входа в систему, а затем должна быть активирована форма за ним. Проблема в том, что форма за диалоговым окном входа в систему не обновляется, и поэтому диалоговое окно входа в систему не будет удалено до тех пор, пока форма за ним не будет обновлена каким-либо действием пользователя. Вероятно, это связано с тяжелой обработкой, которая выполняется в части задач входа в систему, но я не нашел способа решить эту проблему.
По сути, мне нужен способ заставить приложение закрыть диалоговое окно и снова нарисовать все, прежде чем выполнять тяжелые задачи входа в систему. Я безуспешно пробовал множество методов обновления:
Form loginDialog = new Form();
DialogResult result = loginDialog.ShowDialog();
loginDialog.Dispose();
//I've tried everything at this point to get the form to refresh before performing
//login tasks
this.Refresh();
this.Invalidate();
Application.DoEvents();
PerformHeavyLoginTasks();
Кто-нибудь знает, что может пойти не так? Спасибо