При выполнении каких-то долгих действий приложение обычно не обновляет форму и если нам нужно показать, что программа не зависла, а продолжает работать, необходимо в каких-то долгих промежутках программы вставить обновление (перерисовку) всех элементов на форме, либо конкретного элемента. Делается это элементарно:
statusStrip1.Refresh(); // обновление конкретного элемента на форме this.Refresh(); // или обновление всей формы и всех ее дочерних элементов
Несмотря на то, что в описании Refresh сказано, что этот метод принудительно заставляет перерисовываться все дочерние элементы и себя, бывают ситуации, когда это не помогает и приложение все равно выглядит "зависшим", а окно не активно. В этой ситуации может помочь DoEvents:
Application.DoEvents();
DoEvents передает управление Windows-у чтобы тот выполнил обработку своих событий. Однако, нужно иметь в виду, что при этом, у пользователя будет возможность взаимодействия с программой, поэтому, если нужно чтобы пользователь ждал и ничего не нажимал в программе, нужно предусмотреть это перед началом выполнения длительного кода.
Комментарии к статье:
Добавить комментарий: