Показывать анимацию во время более длительного процесса в форме окна - PullRequest
1 голос
/ 16 июля 2010

У меня есть окно формы диалога , которое делает что-то дольше после нажатия кнопки.Поскольку это занимает некоторое время, я хочу показать анимацию в диалоговом окне (анимированный GIF, AVI или любой другой).Как я могу достичь этого.Нужна ли мне собственная тема для этого (у меня нет опыта работы с темами)?Можете ли вы предоставить мне фрагмент кода, как этого добиться?

Ответы [ 2 ]

6 голосов
/ 16 июля 2010

Вы можете отобразить анимированный GIF с помощью обычного элемента управления PictureBox, а некоторые полезные анимированные GIF можно найти на Ajaxload .

Однако, если вы выполняете операцию в пользовательском интерфейсенить, программа будет зависать до завершения.
Чтобы предотвратить это, используйте BackgroundWorker , например:

Добавьте компонент BackgroundWorker к вашей форме.
Обработайте его DoWork и выполните там свою операцию.
Обработайте событие RunWorkerCompleted и скройте PictureBox.
Если вы хотите запустить операцию, покажите PictureBox, затем вызовите метод RunWorkerAsync.

1 голос
/ 16 июля 2010

Я бы поместил трудоемкий процесс в его собственный поток и отобразил анимированный GIF в потоке пользовательского интерфейса.Также может быть полезно отключить кнопку, которая запускает процесс, чтобы нетерпеливый пользователь не нажимал ее несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...