Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Suppir
25 / 25 / 10
Регистрация: 08.08.2011
Сообщений: 1,158
1

Активировать приложение после завершения долгого метода

11.07.2014, 13:22. Просмотров 354. Ответов 4
Метки нет (Все метки)

Добрый день!

Есть метод, который долго работает через BackGroundWorker. В конце работы появляется MessageBox о том, что работа завершена. Мне нужно сделать так, чтобы окно программы активизировалось в этот момент.

Пишу:

C#
1
2
3
4
5
6
         if (this.InvokeRequired)
                this.Invoke((MethodInvoker)delegate { this.Activate(); });
            else
                this.Activate();
 
               MessageBox.Show("Проверка завершена!");
Получается так, что окно программы активизируется, а MessageBox идет сзади него, т.е. невидим.

Подскажите, как сделать так, чтобы сначала активизировалось окно программы, а потом спереди отображался MessageBox?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2014, 13:22
Ответы с готовыми решениями:

Как активировать приложение если оно запущено
Проблема в следующем необходимо запретить повторный запуск приложения, и если его запускают...

Выпал синий экран после долгого завершения работы Windows
За всё использование ПК не было ни разу синего экрана. Началось всё после завершения работы...

Вызов метода после завершения потока
Здравствуйте. Есть вот такой простой пример: private void Work() { ...

Освобождается ли память выделенная под список и массив после завершения работы метода?
Вопрос по механике .Net. Есть статический метод. В методе происходит инициализация и создание...

Почему после завершения работы приложение активно?
Установил программу на телефон. Протестил, делаю выход:finish(); System.exit(0); Открываю...

4
Wolfdp
901 / 805 / 208
Регистрация: 15.06.2012
Сообщений: 3,182
Записей в блоге: 1
Завершенные тесты: 1
11.07.2014, 15:06 2
самый тупой вариант -- программно свернуть/развернуть окно, а уже потом выдать сообщение.
0
Suppir
25 / 25 / 10
Регистрация: 08.08.2011
Сообщений: 1,158
11.07.2014, 16:17  [ТС] 3
А другой какой-нибудь вариант есть?
0
Wolfdp
901 / 805 / 208
Регистрация: 15.06.2012
Сообщений: 3,182
Записей в блоге: 1
Завершенные тесты: 1
11.07.2014, 16:22 4
А, дошло в чем проблема. Вы вызывает сообщение в другом потоке, а не в главном.

C#
1
2
3
4
5
         Action action = () => { this.Activate(); MessageBox.Show("Проверка завершена!"); };
         if (InvokeRequired)
                Invoke((MethodInvoker)delegate { action (); });
            else
                action();
1
Suppir
25 / 25 / 10
Регистрация: 08.08.2011
Сообщений: 1,158
11.07.2014, 20:35  [ТС] 5
Спасибо, попробую.
0
11.07.2014, 20:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 20:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отключаются USB после долгого сна
Здравствуйте. После долгого сна перестают работать usb устройства. В некоторых случаях...

Не запускается биос после долгого простоя
Второй раз не стартует биос после долгой остановки(2 дня). Первый раз, после просмотра различных...

Компьютер не работает после долгого времени неиспользования
Компьютер отдыхал целый год или даже больше, но до этого работал как следует. Подключил к монитору...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.